开发者

issue retrieving ajax data

I have an issue retrieving ajax data using jquery 1.3.2 / 1.4.2:

  • It works with IE 7/8

  • It fails with FF 3.5/3.6, Chrome 5.0.375.70

The piece of jquery code is very basic:

$.get('http://myhost/someurl',function(data) {
    if (data) {
        alert('data is: ' + data);
    } else {
        alert('no data');
    }
});

With all tested browsers except IE I fall into the ELSE. I compared http headers returns with IE and FF and I can't see what could cause the issue ("test" is actually the data returned by the server):

[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-Al开发者_如何学编程ive
    Content-Type: text/html

    test

I checked with wireshark and the HTTP response is well-formed (2 x "\r\n" between last header and content). Using Firefox, if I inspect the response with HTTPwatch it shows me "test" in the content. However if I look at it with firebug I see nothing. Same behaviour with Chrome degugging tool.

Am I retarded?

Thanks.


If you're making a cross-domain request, it won't work. Cross-domain requests are not permitted as a security measure. You'll just get a null response.

I assume you're testing the page from the filesystem. If so, that's the reason it works in some browsers, since some will allow the cross-domain request to occur in that situation.


To be sure of the result of the if statement I would change your control to

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

or test to null if needed

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜