jQuery.ajax 事件在 IE8 中无法正确触发(加载 Fiddler 时除外)

标签 jquery ajax json web-services internet-explorer-8

这可能是我遇到过的最奇怪的错误:

因此,我对一个 Web 服务进行了一系列 jQuery.ajax 调用。它在 Firefox 和 Chrome 中运行良好,但在 IE8 中没有任何作用,除非我运行 Fiddler。 (这与报告的问题类似 here ,但我已经尝试了提到的内容,但没有成功。)

在这些非功能性调用中,似乎它正在按照应有的方式构建 jqXHR 对象,但缺少一些东西。但不确定是什么 - 我对 jQuery 的内部工作原理不是很熟悉,所以单步执行调试器中的调用对我来说只能做这么多。

电话如下:

$.ajaxSetup({
    type: "POST",
    timeout: 30000,
    contentType: "application/json; charset=utf-8"
});

$.ajax({
url: "/PSWS/UserManager.asmx/Login",
data: '{"emailAddress":"' + myEmailAddress + '","password":"' + myPassword + '","stayLoggedIn":' + (myStayLoggedIn ? 'true' : 'false') + '}',
success: function (response) {
    if (!response.Success) {
        alert(response.Message);
    } else {
        $(this).find('.message').remove();
        $.fn.colorbox.close();
    }
},
dataType: 'json',
error: function (jqXHR, textStatus, errorThrown) {
    $(this).find('.message').remove();
    $(this).prepend('<div class="message message_error">Error!<br/>' + jqXHR.status + ' - ' + jqXHR.statusText + '</div>');
}

});`

我想知道我的 JSON 是否有问题,无论是发送的内容还是接收的内容。除了通过 Fiddler 之外,我不知道有什么方法可以捕获它,但它似乎是有效的。无论如何,对其解析器和 JSONLint 来说足够有效。

已发送: {"emailAddress":"test@example.com","password":"asdasdasd","stayLoggedIn":true}

收到: {"__type":"PSUserManagerService.SystemResponse","Success":false,"Message":"登录时出错:用户名和/或密码无效。","Subscriptions":null}

最佳答案

我也遇到了同样的问题。

就我而言,这是由 NTLM (SSO) 身份验证引起的。

Internet Explorer 检查每个后请求的NTLM 身份验证:

<小时/>

请求 header (来自 DebugBar 插件)

Cookie:JSESSIONID=2323......323239

授权:NTLM....

<小时/>

我不知道为什么它可以与 fiddler 一起使用...也许通过这个代理可以操纵身份验证 header 。

关于jQuery.ajax 事件在 IE8 中无法正确触发(加载 Fiddler 时除外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10452376/

相关文章:

jquery - 保护基于 AJAX 的 Web 应用程序

javascript - 'IJsonHelper' 不包含 'Encode' 的定义

jquery - 选中表 1 中单选按钮的特定值时更改表 2 中的行类

javascript - 为什么使用 .html() 会破坏这个 Replace 表达式?

javascript - 为什么 Bing Maps 7 AJAX 控件不是延迟加载?

javascript - 管理大量主干异步请求

json - Elastic Sink 中的 Kafka Connect 序列化错误

javascript - 如何将JSON对象列表发送到灯箱?

jquery - 推迟文件上传表单提交,直到经过验证

javascript - 无法根据下拉选择在 AJAX/Javascript/HTML 中创建表单