[英]jQuery ajax problem with IE6
嗨,我的问题有点有线:
我的$ .ajax成功处理程序如下所示:
function(data){ alert(data); }
很简单,是吗?
问题是数据总是3个字符长-无论服务器发送了什么! 字符:31 65535 8(使用charCodeAt())。
在其他浏览器中(甚至在IE 8中),一切正常。
我在完整的处理程序中查看了xhr.responseText-相同的结果。
UPDATE完整的http响应
HTTP/1.1 200 OK Date: Sun, 07 Feb 2010 13:35:39 GMT Server: Apache/2.2.12 (Ubuntu) X-Powered-By: PHP/5.2.10-2ubuntu6.4 Set-Cookie: 1111111111111111=UjVXb1Q3WTdUIQ8jXmALbA88VzpRcVcgBzMDcldyUmtWawAyAFpQP1IwASEAbFh%2FDjoLZ1RiBWlWdwBnUGMHZlU2UGBTZFA5B2UMMlJgC29SbVdjVDRZOVRsDzReaQtuDzpXZVFjV2UHYwM1VzNSNlYzAG4AMVAwUjUBIQBsWH8OOgtlVGAFaVZ3AD5QIgdcVWVQNlNhUHIHMAwjUiQLL1JvVyZUOVk8VGkPal54C2wPNVcyUX1XYgdgAzlXL1IzVioAbQA3UG9SdgE4ACRYNg4xC2RUagVxViAAJFA3B3FVW1AzU2JQZQc7DCRSdQs2UidXb1Q2WT1UYA9yXhcLMg92V2lRP1c%2FBzcDLlc1UixWNAB8AC1QNVI7AW4AJ1htDnQLPVQyBT9WMABsUHIHTlVXUBtTQFAgB20MflJnCzZSdFcCVGpZY1Q%2BDz9eLQsuDyxXTlEHV3MHYAMvVzBSOVYmAGcAdlBsUmUBMABtWC4ObAs1VCMFJ1YKADZQMQd3VW1QJFNsUHQHLAxyUmwLflJuV2RUM1k3VHgPYV5oC2sPOVc1UWdXagdgAzBXOVIgVj8AIQ%3D%3D; expires=Tue, 07-Feb-2012 13:35:39 GMT; path=/ Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 21 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html 1
更新! 好吧,暂时的问题? 通过禁用.htaccess中的gzip解决
您得到的字符看起来很奇怪,但这可能是BOM吗? 它不是本文列出的内容,但也许getCharCode()出错了。
在这种情况下,您将必须检查调用的脚本以请求数据。 尝试显式保存而不使用BOM表。
这通常是对请求的内容/显示的内容进行适当编码的问题。
请确认两者使用相同的格式。
尽管ajax总是在UTF-8中完成,但某些实现却很奇怪,并且它们不允许传递非ascii字符。 您必须将它们更改为实体。
如果您仅传递一个字符仍然遇到问题-可能是Pekka提到的BOM。 您必须先保存您的PHP文件,不得包含任何空格
第二件事是您可能在php文件的末尾输出了一些内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.