我有一个简单的 jquery.ajax 调用,用于检查用户的凭据。我的问题是它适用于其他任何地方(IE8、9、10、Chrome、Firefox、带有 IE8 的 VS2008),但在我的特殊情况下,我使用 Visual Studio 2012 并使用任何浏览器从那里启动它会导致通用的“网络错误” ”。我的电话看起来完全像这样:
var username = $('#Username').val();
var password = $('#Password').val();
var qstr = "userName=" + username + "&password=" + password;
$.ajax({
type: "GET",
url: "http://" + serverId + "/ADService/Service1.asmx/LoginUser",
data: qstr,
async: false,
timeout: 5000,
dataType: "xml",
success: function (xml) {
alert('Success');
result = $(xml).find('result').text();
userId = $(xml).find('userId').text();
name = $(xml).find('name').text();
role = $(xml).find('role').text();
}
, error: function (xmlHttpRequest, ajaxOptions, thrownError) {
alert('response: ' + xmlHttpRequest.responseText);
alert('status: ' + xmlHttpRequest.statusText);
}
}).done(function (data) {
createCookie("userId", userId);
createCookie("name", name);
createCookie("role", role);
eraseCookie("returningFromPage");
if (result == "VALID") {
if (role == "Engineer") {
window.location.href = "EngrView.aspx";
}
else {
window.location.href = "AD_Select.aspx";
}
}
else {
alert("Login failed");
}
})
.fail(function () {
alert("Login failed (.fail function)");
});
对于我提到的配置,这个调用总是在“错误”事件处理程序中以“网络错误”的通用响应结束,并且没有关于发生了什么的其他信息。
看着提琴手,调用实际上确实从服务器发出,并且响应正常且正确。我觉得有一些我不知道的 VS2012 设置正在扼杀我的电话。有任何想法吗?