检索ajax数据的问题

时间:2010-06-22 10:44:14

标签: jquery ajax

我在使用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工具相同的行为。

我是否迟钝了?

感谢。

2 个答案:

答案 0 :(得分:2)

如果您要提出跨域请求,则无法使用。不允许跨域请求作为安全措施。你只会得到一个空响应。

我假设您正在测试文件系统中的页面。如果是这样,那就是它在某些浏览器中工作的原因,因为有些浏览器会允许在这种情况下发生跨域请求。

答案 1 :(得分:0)

为了确保if语句的结果,我会将你的控制权改为

if(data == "test"){..}

或在需要时测试为null