我在使用jquery 1.3.2 / 1.4.2检索ajax数据时遇到问题:
适用于IE 7/8
使用FF 3.5 / 3.6,Chrome 5.0.375.70
这段jquery代码非常基础:
$.get('http://myhost/someurl',function(data) {
if (data) {
alert('data is: ' + data);
} else {
alert('no data');
}
});
除IE之外的所有测试浏览器都属于ELSE。 我将http标头返回与IE和FF进行比较,我看不出可能导致问题的原因(“test”实际上是服务器返回的数据):
[with IE]
HTTP/1.1 200 OK
Date: Tue, 22 Jun 2010 10:01:32 GMT
Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch
X-Powered-By: PHP/5.2.4-2ubuntu5.10
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 4
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html
test
[with FF]
HTTP/1.1 200 OK
Date: Tue, 22 Jun 2010 10:01:54 GMT
Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch
X-Powered-By: PHP/5.2.4-2ubuntu5.10
Set-Cookie: PHPSESSID=1777838b6006566fee273bd329463d57; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 4
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html
test
我查看了wireshark,HTTP响应格式正确(最后一个标题和内容之间的2 x“\ r \ n”)。使用Firefox,如果我用HTTPwatch检查响应,它会在内容中显示“test”。但是,如果我用萤火虫看它,我什么也看不见。与Chrome degugging工具相同的行为。
我是否迟钝了?
感谢。
答案 0 :(得分:2)
如果您要提出跨域请求,则无法使用。不允许跨域请求作为安全措施。你只会得到一个空响应。
我假设您正在测试文件系统中的页面。如果是这样,那就是它在某些浏览器中工作的原因,因为有些浏览器会允许在这种情况下发生跨域请求。
答案 1 :(得分:0)
为了确保if语句的结果,我会将你的控制权改为
if(data == "test"){..}
或在需要时测试为null