AJAX激发错误无响应文本

AJAX Fires Error No Response Text

本文关键字:响应 文本 错误 AJAX      更新时间:2023-09-26

我正在调用一个API,一切都很好。我收到了令牌,返回的状态代码是200(在Fiddler中验证)。我所坚持的是,AjaxError启动,但responseText是空的。此外,成功完成点火。我相信标签正在填充,但Postback或其他东西正在擦除它。我会看到值张贴到标签上,然后消失(有时)。这是纯JS和HTML,没有使用其他内容。什么东西?

        $(document).ajaxComplete(function (event, xhr, options) {
            alert("HEEEY COMPLETE");
            $("#tokenLabel").html("XXXXX");
        });
        $(document).ajaxError(function (event, xhr, options) {
            alert(xhr.responseText);
        });
        $('#SubmitButton').click(function () {
            var userName = $("#userNameTextBox").val();
            var passWord = $("#passwordTextBox").val();
            populateCreds(userName, passWord);
            login();
        });
        function populateCreds(userName, passWord) {
            creds = { "Username": userName, "Password": passWord };
        }
        // Login
        function login() {
            return $.ajax({
                type: "POST",
                url: "http://localhost/APIService/api/token",
                dataType: "json",
                contentType: "application/json",
                processData: false,
                data: JSON.stringify(creds),
                success: function (xhr) {
                    console.log(xhr.tokenValue);
                }
            });
        }

OOOPSIE!我真傻。我使用的是提交按钮类型。所以表格会被提交,而Postback正在抹杀我的价值观。愚蠢,愚蠢的我。

    <button type="button" id="SubmitButton" class="btn btn-default">Submit</button>

这解决了我的问题。

让我注意一下,这是一个单页应用程序。如果我重定向到另一个页面,提交行为就会起作用。