나는이 anwser를 찾을 수 있어야한다고 생각하지만 수 시간의 연구 끝에 성공을 거두었습니다. API 서비스를 호출하는 jquery ajax가있는이 page이 있습니다. 크롬, 사파리, 파이어 폭스, 심지어 IE 10에서도 정상적으로 작동합니다. 그러나 IE 9와 8은 실패한 것으로 보입니다. 여기 jquery ajax call ie8/9가 작동하지 않음
코드입니다 :$.ajax({
type: "GET",
url: "http://api.domain.org/api/campus?filtertype=name&filter="+ escape($('#campus').val()),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (result) {
$('#results').children().remove();
var arrayd = (typeof result) == 'string' ? eval('(' + result + ')') : result;
if (arrayd != null) {
for (var i = 0; i < arrayd.length; i++) {
$('#results').append('<li>' + arrayd[i].SchoolName + '</li>');
}
}
},
error: function (request, status, errorThrown) {
alert("There was an issue with the request");
} // When Service call fails
});
가장 큰 문제는 그 경고 파일,하지만 난 심지어 서버를 치면 나를보고 도움이되지 않는 IE 디버깅 도구의 모든 트래픽을 볼 수 없습니다 .
는 내가 가지의 수를 시도했다 :
- 은 $ 아약스 설정
- http://mvcdiary.com/2013/01/16/jquery-ajax-request-not-working-in-ie9/ 당 설정 설정 '$ .support.cors을 = 사실을;' AJAX 호출 'jquery.iecors.js'
업데이트
'JSONP'에 데이터 유형을 변경 한 후 사용
$.ajax({
type: "GET",
url: "http://api.athletesinaction.org/api/campus?filtertype=name&filter="+ escape($('#campus').val()),
dataType: "jsonp",
async: false,
contentType: "application/javascript",
crossDomain: true,
jsonpCallback: 'myTest',
success: myTest,
error: function (request, status, errorThrown) {
alert(errorThrown);
} // When Service call fails
});
function myTest (argument) {
alert("YEAH");
$('#results').children().remove();
var arrayd = (typeof result) == 'string' ? eval('(' + result + ')') : result;
if (arrayd != null) {
for (var i = 0; i < arrayd.length; i++) {
$('#results').append('<li>' + arrayd[i].SchoolName + '</li>');
}
}
}
왜 JSON을 평가하고 있습니까? 'JSON.parse()'를 대신 사용하면 어떻게됩니까? JSON 응답은 어떻게 생겼습니까? IE에서 어떤 콘솔 오류가 발생합니까? – user2736012
ajax 호출에서 [data] 속성을 사용하여 쿼리 매개 변수를 지정해야합니다. 또한 jsonp를 사용해보십시오. – jonosma
IE8과 IE9는 XHR2를 지원하지 않으므로 CORS 요청을 보내려면 다른 XHR을 사용해야합니다. jQuery는 이러한 지원을 제공하지 않으므로 직접 수행하거나 플러그인을 설치해야합니다. cors support를 true로 설정하는 것은 절대적으로 쓸모가 없으며, 데스크탑 브라우저에서 절대 원하지 않는 경우는 없습니다. –