jQuery.get () работает на IE, но jQuery.post () не работает - PullRequest
0 голосов
/ 02 декабря 2010

У меня очень странная проблема. Я делаю довольно стандартный ajax-вызов с jQuery, но он отказывается работать с Internet Explorer 7.

Код следующий:

$.ajax({
  url: updateUrl,
  cache: false,
  type: 'post',
  data: params, 
  success: function(data){
    handleResponse(data);
  }
 });

Странная часть в том, что если я изменю тип на get, все будет работать правильно. Я определил, что с 'post' IE вообще ничего не отправляет на сервер.

Я также настраиваю всевозможные заголовки для предотвращения кэширования, но они не влияют на проблему 'post'.

Ответы [ 2 ]

0 голосов
/ 08 декабря 2010

Мне наконец удалось отследить эту проблему. В конечном итоге проблема заключалась в конфликте между Сариссой и jQuery. Решение можно найти по здесь . После предложенного исправления IE снова заработал.

Другой проблемой был также IE7 в CrossOver. В целом он кажется неисправным, потому что даже с исправлением он отказывался работать правильно.

0 голосов
/ 02 декабря 2010

Точно так же, как вы знаете, согласно документам для $.post() (что является сокращением для вызова AJAX):

Страницы, извлекаемые с помощью POST, никогда не кэшируются

Попробуйте установить dataType для возвращаемых данных и добавьте обработчик ошибок, который будет предупреждать о любых ошибках:

$.ajax({
  url: updateUrl,
  cache: false,
  type: 'post',
  data: params, 
  success: function(data){
    handleResponse(data);
  },
  error: function(xhr,textStatus){
    alert(textStatus);
  }
 });

Также вы уверены, что страница, на которую она публикуется, получает POSTпеременные, а не только переменные GET?

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