我有一个我打电话的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);
}
});
}
答案 0 :(得分:2)
OOOPSIE!我太傻了。我使用的是提交按钮类型。因此表单将被提交并且Postback正在删除我的值。傻,傻我。
<button type="button" id="SubmitButton" class="btn btn-default">Submit</button>
这解决了我的问题。
我要注意,这是一个单页面应用程序。如果我重定向到另一个页面,提交行为将起作用。