IE8 NTLM Ajax no "Content-Length: 0" Post cometD F
IE8 NTLM Ajax no "Content-Length: 0" Post cometD Fiddler
我遇到了一个问题,用户登录NTLM(通过localhost:8585/test.ntlm),浏览器尝试通过comtD握手。这适用于除 IE8 ON WinXP(适用于 Win7 上的 IE8)之外的每个浏览器。
正如许多人所说的那样,当IE8认为它正在通过NTLM页面时,它不会发送响应正文,因为它预计会出现401错误。但是,从他们登录时提示访问/test.ntlm 页面时,授权就已经发生了。我已经使用Fiddler实际查看IE8的请求标头,奇怪的部分是,当Fiddler实际在它上时,一切都非常正常,并且在服务器上看到的请求标头与Fiddler未打开时的不同。
IE8 与提琴手
[Accept][text/javascript, text/html, application/xml, text/xml, */*]
[Accept-Language][en-us]
[x-prototype-version][1.6.0.2]
[Referer][http://nldo-82-2.eur.ad.sag:8585/test.ntlm]
[x-requested-with][XMLHttpRequest]
[Content-Type][application/json; charset=UTF-8]
[Accept-Encoding][gzip, deflate]
[User-Agent][Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)]
[Host][nldo-82-2.eur.ad.sag:8585]
[Content-Length][0]
[Connection][Keep-Alive]
[Cache-Control][no-cache] -- Only added in IE
[Cookie][JSESSIONID=1ckx2gei602sg]
[Authorization][NTLM TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAFAs4OAAAADw==] --Only happens in IE8 when Fiddler isn't on
带提琴手的IE8
[Accept][text/javascript, text/html, application/xml, text/xml, */*]
[Accept-Language][en-us]
[x-prototype-version][1.6.0.2]
[Referer][http://nldo-82-2.eur.ad.sag:8585/test.ntlm]
[x-requested-with][XMLHttpRequest]
[Content-Type][application/json; charset=UTF-8]
[Accept-Encoding][gzip, deflate]
[User-Agent][Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)]
[Host][nldo-82-2.eur.ad.sag:8585]
[Content-Length][177]
[Connection][Keep-Alive]
[Pragma][no-cache]
[Cookie][JSESSIONID=1qpdgov0w07pf]
正如我们所看到的,最大的区别是IE8 w/o Fiddler具有据我所知由浏览器添加的授权标头。
我不知道该怎么办,我已经尝试了其他堆栈溢出主题中列出的许多MS热修复程序,但这些似乎都不起作用。我试图按照一些人的建议返回 401,尽管浏览器仍然期望 401 发送响应正文,但这也不起作用。奇怪的是,它在 Win7 的 IE8 中完美运行,但在 WinXP 版本中却没有。请注意,Win7 的浏览器版本为 8.0.7601.17514,WinXP 的浏览器版本为 8.0.6001.18702。
欢迎任何和所有建议。
尝试将方法更改为 GET,看看效果如何?
我刚刚花了 2 天时间研究 ajax POST 请求超时的问题。所有搜索都发现这是 SSO NTLM 身份验证问题。
Internet Explorer 在每个发布请求上检查 NTLM 身份验证。
Fiddler 缓存 NTLM 身份验证,并允许请求通过,而不会出现问题。
- 如何使用WCF服务和javascript表单post上传.doc文件
- Jquery POST未填充数组
- 如何在php文件中获取$.post-ajax传递的值
- 在POST中将html表作为csv提交
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 如何使用post方法从方法上传文件
- Django: AJAX + CSRF POST gives 403
- AJAX不会在文件上传后重定向到网页-POST方法
- 使用“+="操作人员
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 得到"读取ECONNRESET”;尝试POST到'graphic.facebook.com'通
- 在JSON中POST一个js::数组,得到"undefined:undefined”;
- Javascript/HTML”;错误”:"请使用POST请求“;将下拉选择与case/switch语句一起使
- Dojo.request.post-返回的promise说"拒绝”;,但服务器似乎已经接受了请求
- "错误“;或“;失败”;在jQuery中调用$.post Ajax
- "意外的输入结束“;从简单POST请求到node.js的响应消息