![AJAX 响应返回格式错误](https://linux22.com/image/802040/AJAX%20%E5%93%8D%E5%BA%94%E8%BF%94%E5%9B%9E%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF.png)
尝试从浏览器运行此命令,或者按照这里所示使用 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”标头确实看起来不错,但谁也不知道愚蠢的网络服务器会做什么。