私はこのアンサーを見つけることができるはずだと感じていますが、何時間もの調査の結果、成功したことはありません. このページには、API サービスへの単純な jquery ajax 呼び出しが含まれています。Chrome、Safari、Firefox、さらには IE 10 でも問題なく動作しますが、IE 9 と 8 ではうまくいかないようです。
コードは次のとおりです。
$.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/ごとの $.ajax 設定の設定
- 「$.support.cors = true;」の設定 ajax 呼び出しの前に
- 「jquery.iecors.js」の使用
アップデート
dataType を「jsonp」に変更した後、呼び出しが成功した IE 8/9 でトラフィックが見られるようになりました。ただし、現在、ブラウザで成功メソッドを呼び出すことはできません。
$.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>');
}
}
}