首页 > 解决方案 > XMLHttpRequest 状态永远不会变为 DONE

问题描述

我得到了这个 mvc 核心应用程序。它的一种方法看起来像这样(现在)

    public IActionResult Call(string call)
    {
        Response.ContentType = "text/plain";
        return Ok (call);
    }

浏览器中的 javascript 看起来像这样

        var xhttp = new XMLHttpRequest();
        xhttp.withCredentials = true;
        xhttp.open("GET", request, true);
        xhttp.onreadystatechange = function ()
        {
            if (this.readyState == 4)
            {
                if (this.status == 200)
                {
                    SetAnswerText(this.responseText);
                }
                else
                {
                    SetApiCallTextAreaValue("request - \n" + request + "\n failed; status = " + this.status);
                }
            }
            else
            {
                SetApiCallTextAreaValue("current status is " + this.readyState + "\n" + this.responseText);
            }
        }

出于某种原因,我只收到带有 readystate==3(LOADING) 的通知,而从来没有..带有我期待的 readystate==4(DONE) 的通知。

你能帮我弄清楚为什么会这样吗?

顺便说一句,如果我在浏览器中打开这个 Call 方法的 url,比如https://..../Call/?call=123它绝对可以正常工作。

标签: javascripthtmlajaxmodel-view-controller

解决方案


omg .. 忘记将函数名称从 SetAnswerText 更改为 SetApiCallTextAreaValue .. 必须多睡觉 .. 仅当我在浏览器中查看代码时才发现错误:P


推荐阅读