AJAX 响应返回格式错误

AJAX 响应返回格式错误

尝试从浏览器运行此命令,或者按照这里所示使用 curl

我收到了 �zرy��a�a�a�a�a�a�a�a�aBEE� 的回复

它是一个运行 apache2 的 ubuntu 10.04 服务器,应该返回的数据应该是 JSON 字符串{ result: "true" }或类似的内容,所以我不认为数据库中的字符集/编码有问题。

> GET /ajax.php?f=setCurrency HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15
> Host: 
> Accept: */*
> X-Requested-With: XMLHttpRequest
>
< HTTP/1.1 200 OK
< Date: Thu, 06 Jun 2013 15:07:35 GMT
< Server: Apache/2.2.14 (Ubuntu)
< X-Powered-By: PHP/5.3.2-1ubuntu4.19
< Content-Encoding: none
< Content-Length: 30
< Content-Type: text/html
<
* Connection #0 to host www.tellavista.com left intact
* Closing connection #0

�zرy��a�a�a�a�a�a�a�a�aBEE�

[1]+  Done

答案1

本质上的问题是,当你在 PHP 5.3 中包装json_encode(true)并期望 json 响应时,它有时会返回格式错误的响应。

答案2

尝试在请求标头中添加“Accept-Encoding:”,以确保您不会收到压缩数据。

“Content-Encoding”标头确实看起来不错,但谁也不知道愚蠢的网络服务器会做什么。

相关内容