AJAX Jsonp вызывает сбой в IE9 - PullRequest
4 голосов
/ 30 августа 2011

У меня следующий код

$.ajax({ type: 'POST',
                url: 'index.jsp',
                data: 'id=111',
                dataType: 'jsonp',
                success:  function(data) {
            alert(data.result);
                },
                error: function( err1, err2, err3 )
        {
              alert('Error:' + err3 )
        }
            });

Я возвращаю ответ как параметр обратного вызова, сгенерированный с аргументом json. как это

jQuery16105097715278461496_1314674056493({"result" : "success"})

Это отлично работает в FF. В IE 9 он переходит к функции ошибок и показывает

"Error: jQuery16105097715278461496_1314674056493 was not called" . 

когда я вижу F12. Я вижу предупреждение, которое говорит.

SEC7112: Script from http://otherdomain.com
index.jsp?callback=jQuery16105097715278461496_1314674056493
&eid=111&_=1314674056493 
was blocked due to mime type mismatch 

enter image description here

enter image description here enter image description here

Ответы [ 2 ]

1 голос
/ 30 августа 2011

попробуйте добавить contentType

$.ajax({
     type: 'POST',
     url: 'index.jsp',
     data: {id:'111'},
     contentType: "application/json; charset=utf-8",
     dataType: 'jsonp',
     success:  function(data) {
       alert(data.result);
     },
     error: function( err1, err2, err3 )
     {
       alert('Error:' + err3.status );
       alert(err1.responseText);
        }
 });

вот хорошая статья http://msdn.microsoft.com/en-us/library/gg622941%28v=vs.85%29.aspx

0 голосов
/ 15 марта 2018

Эта библиотека очень полезна. Я нашел ее после многочасовой траты.

Используйте эту библиотеку https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest, тогда вам не понадобится jsonp.

И ваш межсайтовый запрос начнет работать нормально.

...