Crossdomain jQuery.ajax иногда не работает в Firefox 8, но работает в Chrome / IE - PullRequest
1 голос
/ 08 декабря 2011

У меня есть этот скрипт, который запрашивает мое приложение Ruby on Rails (расположенное в удаленном домене) с использованием jQuery 1.7.1. Скрипт отлично работает в Chrome и даже в IE9, но не в Firefox.

Вот скрипт:

Informer= {
  getData: function(args)
  {     
    $.ajax({
      dataType: 'jsonp',            
      data: args,
      url: 'http://localhost:3000/informer.js',
      beforeSend: function () {
        alert("beforeSend");
      },
      error: function () {
        alert("error");
      },
      success: function (data) {      
        alert("success");
      },
      complete: function(){
        alert("complete");
      } 
    });
  }
}

Я называю это так

$(document).ready(function()
{
  Informer.getData(someArgs);
});

Так что в chrome я получаю 3 оповещения, а в firefox я получаю только «beforeSend». Я также не вижу никаких запросов в firebug.

Это определенно имеет отношение к URL. Я изменил его на http://jsfiddle.net/echo/jsonp/, и это сработало. Но у меня все еще есть 2 почему:

UPD

Короче, вот что у меня так далеко:

  1. Вчера у меня это не сработало (потратили 3 часа, вздох), и сегодня.
  2. Он всегда работает в Chrome и IE
  3. Запрос не отображается в Firebug
  4. Когда скрипт завершается ошибкой (имеется в виду, что я получаю только предупреждение beforeSend), журнал моего приложения не обновляется (я полагаю, FF не отправляет запрос)
  5. Пробовал с помощью jquery-jsonp без результата
  6. 10 из 11 пользователей с FF8 сообщили, что скрипт работает.

Вот тестовый скрипт для тех, кто интересуется (если есть)

1 Ответ

1 голос
/ 08 декабря 2011

Просто, чтобы сделать ваше действительным: (Я вставил часть привета для вашего ... не зная, что у вас там было и поддельные аргументы) вы можете проверить это:

Informer = {
    getData: function(args) {
        $.ajax({
            dataType: 'jsonp',
            data: args,
            url: 'http://localhost:3000/informer.js',
            beforeSend: function() {
               alert("beforeSend");
             },
            error: function() {
                 alert("error");
            },
            success: function(data) {
                 alert("success");
         },
            complete: function() {
                 alert("complete");
        }
        });
    },
    howdy: {}
};
var someArgs = {
    hi: "me"
};
$(document).ready(function() {
    Informer.getData(someArgs);
});

РЕДАКТИРОВАТЬ: Исправлена ​​ошибка параметров в: http://jsfiddle.net/MarkSchultheiss/NKgyM/

и установите его для отображения возвращаемого значения.

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