检索ajax数据时出现问题


                    

我在使用jquery 1.3.2 / 1.4.2检索ajax数据时遇到问题:</ p>


  • 它与IE 7/8兼容</ p> </ li>

  • 使用FF 3.5 / 3.6,Chrome 5.0.375.70 </ p> </ li>失败
    </ ul>

    一段jQuery代码非常基础:</ p>

      $ .get('http:// myhost / someurl',function(data){
         如果(数据){
             alert('data is:'+ data);
         }其他{
             警报('无数据');
         }
    });
    </ code> </ pre>

    对于除IE之外的所有经过测试的浏览器,我都属于ELSE。
    我将HTTP标头的返回值与IE和FF进行了比较,但我看不出是什么原因引起的(“测试”实际上是服务器返回的数据):</ p>

      [使用IE]
         HTTP / 1.1 200 OK
         日期:2010年6月22日,星期二10:01:32 GMT
         服务器:带有Suhosin-Patch的Apache / 2.2.8(Ubuntu)PHP / 5.2.4-2ubuntu5.10
         X-Powered-By:PHP / 5.2.4-2ubuntu5.10
         过期:格林尼治标准时间1981年11月19日星期四08:52:00
         缓存控制:不存储,不缓存,必须重新验证,后检查= 0,预检查= 0
         语法:无缓存
         内容长度:4
         保持活动状态:超时= 15,最大= 100
         连接:保持活动
         内容类型:text / html

         测试

    [与FF]
         HTTP / 1.1 200 OK
         日期:2010年6月22日,星期二10:01:54 GMT
         服务器:带有Suhosin-Patch的Apache / 2.2.8(Ubuntu)PHP / 5.2.4-2ubuntu5.10
         X-Powered-By:PHP / 5.2.4-2ubuntu5.10
         Set-Cookie:PHPSESSID = 1777838b6006566fee273bd329463d57; 路径= /
         过期:格林尼治标准时间1981年11月19日星期四08:52:00
         缓存控制:不存储,不缓存,必须重新验证,后检查= 0,预检查= 0
         语法:无缓存
         内容长度:4
         保持活动状态:超时= 15,最大= 100
         连接:保持活动
         内容类型:text / html

         测试
    </ code> </ pre>

    我用wireshark检查过,HTTP响应格式正确(最后一个标头和内容之间为2 x“

    ”)。 使用Firefox,如果我使用HTTPwatch检查响应,则会在内容中显示“测试”。 但是,如果我用萤火虫看它,我什么也看不到。 与Chrome脱胶工具的行为相同。</ p>

    我是智障吗?</ p>

    谢谢。</ p>
         </ div>

展开原文

原文

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-Alive
    Content-Type: text/html

    test

I checked with wireshark and the HTTP response is well-formed (2 x " " 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.

2个回答


如果您要进行跨域请求,则该请求将不起作用。 不允许将跨域请求作为一种安全措施。 您只会得到一个空响应。</ p>

我假设您正在测试文件系统中的页面。 如果是这样,这就是它在某些浏览器中起作用的原因,因为某些浏览器将允许在这种情况下发生跨域请求。</ p>
     </ div>

展开原文

原文

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.


为确保if语句的结果,我将您的控件更改为</ p>

  if(data ==“ test”){..}
</ code> </ pre>

或根据需要测试为空</ p>
     </ div>

展开原文

原文

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问