Проблема с jQuery $ .get () в IE - PullRequest
0 голосов
/ 30 августа 2009

Я работаю над небольшим приложением чата, которое использует jQuery для получения некоторой информации из файла PHP. Выходные данные файла представляют собой целую кучу данных HTML.

Скрипт прекрасно работает в FF, но не в Internet (f *** ing) Explorer, смеется. Код выглядит так:

$.get("index.php", {p: "chatData", type: "regular"}, function(data){
     startPoint = data.indexOf("|START-POINT|");
     endPoint = data.indexOf("|END-POINT|");
     dataReturn = data.substring(startPoint, endPoint);
});

Дело в том, что мне нужно получить доступ к некоторым переменным SESSION внутри моего файла chatData.php. Поэтому я вызываю index.php с p-varable, который включает chatData.php в мой файл index.php, где установлены переменные SESSION. Возможно, это не лучшее решение, но я не мог придумать другой способ доступа к переменным SESSION. Так или иначе.

Но когда я делаю так, обратный вызов также будет содержать все html из index.php, но я хочу только данные из chatData.php, поэтому я помещаю эти start- и endPoints в код, так что он может делать подстроку и таким образом получать нужные данные. То же самое здесь, может быть, не лучшее решение ...

Но теперь проблема! Данные обратного вызова содержат только html из index.php, это может быть index.php html + html chatData ... Но я думаю, что проблема заключается в включении этого index.php, потому что если я вызываю файл, как обычно, я получит данные (хотя, как я уже сказал, мне нужны переменные SESSION из index.php ...).

Так почему же это не работает в IE, но прекрасно работает в других браузерах, таких как FF?

РЕДАКТИРОВАТЬ: Проблема решена. Проблема заключалась в том, что в моем php-файле были мои СТАРТ-ПУНКТЫ, они были ошибочно размещены ... Извините за эту ошибку. В любом случае, спасибо!

Ответы [ 2 ]

2 голосов
/ 30 августа 2009

Вы проверили, что index.php получает те параметры, которые вы ему отправили, и включает другой файл? Просто кажется, что это не так, HTML не может волшебным образом исчезнуть :) Может быть, IE установил его как переменные $ _POST, в отличие от Firefox, который делает это через $ _GET или что-то еще.

0 голосов
/ 08 ноября 2009

IE кеширует ajax-запросы по умолчанию. Вы можете решить это двумя способами:

  1. Установите cache параметр jQuery.ajax() в false.
  2. Добавить строку запроса с отметкой времени в URL.

Редактировать : о, вы уже решили это сами ... В любом случае, надеюсь, что приведенная выше информация все еще полезна Вы никогда не узнаете с IE в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...