AJAX触发错误无响应文本

时间:2014-09-17 16:24:23

标签: javascript jquery ajax

我有一个我打电话的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);
                }
            });
        }

1 个答案:

答案 0 :(得分:2)

OOOPSIE!我太傻了。我使用的是提交按钮类型。因此表单将被提交并且Postback正在删除我的值。傻,傻我。

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

这解决了我的问题。

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