JQuery.ajax работает на любой платформе, кроме IE - PullRequest
2 голосов
/ 17 февраля 2010

У меня есть простой вызов ajax, который работает правильно на КАЖДОЙ другой платформе, кроме IE. Это работает на моем Mac, Ubuntu, Windows Chrome, Windows Firefox, но НЕ IE

var params = "action=tsll_field_request&tsll_action=login&email=foo";
$.ajax( {
    type: "POST",
    url: ajaxurl,
    data: params,
    dataType: "json",
    error:function(xhr, status, errorThrown) {
                    alert(errorThrown+'\n'+status+'\n'+xhr.statusText);
                            },
    success: ajaxLoginCallback
});

функция ошибки никогда не вызывается, состояние ajaxLoginCallback всегда является успешным, НО данные (параметр, переданный ajaxLoginCallback) всегда равен -1 в IE. возвращенные данные - это элемент json, отформатированный с помощью json_encode () в php.

Я совершенно не понимаю, почему ЭТОТ браузер не анализирует JSON и почему я не получаю сообщение об ошибке.

Кто-нибудь может дать мне подсказку?

Ответы [ 4 ]

2 голосов
/ 17 февраля 2010

Думаю, я наконец понял это.

Если я не зарегестрирован в Wordpress, мой вызов ajax отклоняется.Нет ошибки, но вызов не передается моему плагину.

Во время разработки я обычно открываю две вкладки, одну на административной стороне (wp-admin) и одну на общедоступном сайте.тот же браузер.IE - последний браузер, который я проверяю, поэтому я никогда не открываю вкладку администратора.Если я не вошел в WordPress, вызов: mydomain.org/wp-admin/admin-ajax.php должен возвращать -1.

Итак, вызов Ajax завершен, он успешен (следовательно, без ошибок), но у меня нет необходимых разрешений для его выполнения, поэтому я получаю -1 в ответ.

Дох ... Чувствую себя глупо, но я надеюсь, что это поможет кому-то еще.- Скотт

0 голосов
/ 17 февраля 2010

Ничто не выглядит неправильно на уровне синтаксиса, но какие другие переменные вы используете, возможно, там что-то не так.

0 голосов
/ 17 февраля 2010
if ($snarky) { print "A lot of stuff works on every platform except for IE." }  

IE, похоже, кеширует ответы, несмотря на то, что не запрашивает. Потенциальный ответ от JQuery Google Group

0 голосов
/ 17 февраля 2010

Можете ли вы опубликовать данные JSON? Может это уродливо? (Запятые а что нет). Попробуйте создать файл JS, используя эти данные JSON, и попробуйте запросить его.

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