Почему вызов JQuery AJAX не работает в IE7?(для этого конкретного примера) - PullRequest
1 голос
/ 23 ноября 2010

Я видел ссылки ниже, но, к сожалению, к моему коду ничего не подходило.

Эта функция работает в FF, но не в IE, просто отправляя пару имя-значение (info / "") на сервер,Не нужно ничего возвращать или вызывать любую другую функцию.

Есть предложения?

function functionAX()
{ 
    $(document).ready(function() {

       $.ajax({
           url: "/cgi-bin/app.exe",
           method: "post",
           async: false,
           data: { info: "" }
       });

    });
}


Спасибо.

РЕДАКТИРОВАТЬ
Похоже, этот ajax-вызов работает, но только при первом его вызове.

В контексте: (приложение cgi на C, html с JS)
У меня две html-страницы.На каждой странице есть заголовок с вкладкой / ссылкой обеих страниц.При нажатии на другую страницу / вкладку я вызываю эту функцию functionAX (), которая отправляет пару имя / значение в исполняемый файл cgi.На основании этого ввода cgi создаст новую версию другой html-страницы.(При использовании async: false старая страница будет блокироваться до тех пор, пока не будет загружена новая страница, и это хорошо для этого приложения, если я получу новую страницу после нажатия на вкладку / ссылку на эту страницу).

Поэтому, когда я возвращаюсь на «страницу 2» и выбираю «страницу 1» (второй раз на странице 2), он больше не вызывает функцию или что-либо отправляет в приложение cgi ...

Это проблема настройки браузера?Почему он ничего не отправляет в cgi?






jQuery .ajax метод в IE7 и IE6 нетработает, но работает нормально в Firefox

Почему не работает этот простой jQuery ajax?

Вызов jQuery / Ajax - не работаетна IE7

jQuery ajax .load () не работает в IE6 / IE7 / IE8 - Работа в FF / Safari / Chrome

jquery ajaxне работает в IE

Ответы [ 2 ]

1 голос
/ 23 ноября 2010

Согласно спецификации json.org ваше возвращение недействительно. Имена всегда в кавычках, поэтому вы должны возвращать { "info": "" }

Это может не быть проблемой с вашей настройкой, поскольку вы говорите, что один из них работает с FF / etc, но это должно быть исправлено для корректности на случай, если в будущем вам потребуется переключиться на другой анализатор JSON.

Что касается вашего редактирования, кажется, что IE кеширует ваш Ajax-запрос. Чтобы запретить IE кешировать ваши Ajax-запросы, сделайте что-то вроде:

{
'info': '',
'random' : Math.random()
}
0 голосов
/ 23 ноября 2010

Я думаю, что вы должны сделать:

$(document).ready(function() {

   $.ajax({
       url: "/cgi-bin/app.exe",
       method: "post",
       async: false,
       data: { info: "" }
   });

});

или

function functionAX()
{ 
       $.ajax({
           url: "/cgi-bin/app.exe",
           method: "post",
           async: false,
           data: { info: "" }
       });
}

Кажется странным объединение функции и документа .ready

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