IE6的jQuery ajax问题

时间:2010-02-07 13:02:04

标签: javascript jquery ajax internet-explorer-6

嗨我的问题有点连线:

我的$ .ajax成功处理程序如下所示:

function(data){
        alert(data);
}

很简单,是吗?

问题是数据总是3个字符长 - 无论服务器发送什么!字符:31 65535 8(使用charCodeAt())。

在其他浏览器中(即使在IE 8中)一切正常。

我在完整的处理程序中查看了xhr.responseText - 结果相同。

更新 完整的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来解决

3 个答案:

答案 0 :(得分:0)

你得到的角色看起来很奇怪,但它可能是BOM吗?它不是本文中列出的那些,但可能是getCharCode()出错了。

在这种情况下,您必须检查您调用的脚本以请求数据。尝试在没有BOM的情况下明确保存。

答案 1 :(得分:0)

这大多数情况下是对所请求内容/显示内容的正确编码的问题。

请确认两者使用相同的格式。

答案 2 :(得分:0)

尽管ajax总是以UTF-8完成,但某些实现很奇怪,并且它们不允许传递非ascii字符。您必须将它们更改为实体。

如果您只传递一个角色但仍然遇到问题 - 可能是Pekka提到的BOM。您必须先保存PHP文件,不要有任何空格

第二件事是你可能会在php文件的末尾输出一些内容。