JSONP с Firefox 4 не работает? - PullRequest
3 голосов
/ 23 марта 2011

Мы использовали JSONP (http://code.google.com/p/jquery-jsonp/) для выполнения некоторых вызовов localhost для извлечения объектов JSON ... Сегодня я обновился до Firefox 4, и теперь используемый нами код не работает в Firefox 4, но он все еще работает в IE, Chrome и Safari.

С плагином JSONP он добавляет тег script со множеством вещей ... фактически, это похоже на XSS ... Так что мне было интересно, пытался ли Firefox предотвратить это сейчас.

Код:

    $.jsonp({
        url: "http://localhost:2020/wsService/LocalResources/All",
        callback: "callback",
        success: function(data) {
            // some success code
        },
        complete: function(xOptions, textStatus) {
            // this code doesn't alert in firefox 4
            alert("Complete");
        },
        error: function(xOptions, textStatus) {
            // error code
        }
    });

А потом добавляет эту строку

<script id="_jqjsp1" async="" src="http://localhost:2020/wsService/LocalResources/All?_1300967068015=">

Не удалось загрузить источник для: http://localhost:2020/wsService/LocalResources/All?_1300967068015=

Ответы [ 2 ]

0 голосов
/ 13 мая 2011

Я также использую jsonp в одном из моих проектов, и я протестировал его несколько недель назад, и он не работал.Однако сегодня я снова проверил его, и, похоже, он работает нормально:

Я проверил это на Firefox 4.0, 4.0.1 на Windows и Linux с jQuery 3.1.2, 4.1.2, используя jsonp: 2.1.2

Вот код, который я использовал:

jQuery.jsonp({
   url: "http://api.twitter.com/1/statuses/user_timeline.json?include_rts=t&screen_name=twitter&rpp=20&callback=?",
   success: function(data) {
      alert("Success");
   },
   complete: function(xOptions, textStatus) {
       alert("complete");
   },
   error: function(xOptions, textStatus) {
       alert("Error");
   }
});

Единственное отличие состоит в том, что я передаю обратный вызов в конце URL-адреса как "callback =? " вместо определения его в параметрах запроса (не совсем уверен, имеет ли это значение).

0 голосов
/ 01 апреля 2011

Используйте «window.alert» внутри функции вместо «alert» ... в моем случае это помогло ... Надеюсь, это поможет ...

...