2010-06-22 3 views
1

У меня есть проблема получения данных с использованием Ajax JQuery 1.3.2/1.4.2:выпуск извлечения Аякса данных

  • Он работает с 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, и я не вижу, что может привести к проблеме («тест» на самом деле данные, возвращаемые сервером):

[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, он показывает мне «тест» в контенте. Однако, если я смотрю на него с помощью firebug, я ничего не вижу. Такое же поведение с инструментом деградации Chrome.

Я отстаю?

Спасибо.

ответ

2

Если вы делаете запрос междоменная, он выиграл Не работай. Междоменные запросы не разрешены в качестве меры безопасности. Вы получите только нулевой ответ.

Я предполагаю, что вы тестируете страницу из файловой системы. Если это так, то причина в том, что он работает в некоторых браузерах, поскольку некоторые из них позволят выполнить междоменный запрос в этой ситуации.

+0

«test» - это действительные данные html. Оператор if также действителен. Правильный ответ - это Патрик, поскольку я действительно тестировал систему fyles и делал запросы ajax на внешний сервер. – Max

0

Чтобы быть уверенным в результате, если заявление я хотел бы изменить свой контроль, чтобы

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

или тест на ноль, при необходимости

+0

Это скорее комментарий! – vijaysylvester

+0

Пожалуйста, не обижайтесь. Он отправляет код с недостатками, а затем фиксирует сначала. Спасибо – Mauro

Смежные вопросы