私は奇妙な振る舞いをしています。以下は私のページへのjqueryajax呼び出しです。
実際、私のページがロードされているとき、両方のドロップダウンに対してajaxリクエストの下を呼び出す場所から2つのドロップダウンがあるため、同じページへの2つの呼び出しがあります。
//alert("Test");
var serviceReq = "http://localhost:2853/jsonproxy/jsonprxy.aspx";
$.ajax({
url: serviceReq,
//type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
jsonpCallback: "airportXML",
cache: true,
success: function(data, textStatus, jqXHR) {
var xmlDoc = $.parseXML(data);
//alert("data" + data);
x = xmlDoc.documentElement.childNodes;
for (i = 0; i < x.length; i++) {
document.write(x[i].nodeName);
document.write("<br />");
}
//alert(oData);
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + "---" + errorThrown);
}
});
問題は、それが成功することは決してないので、この// alert( "data" + data);を取得しないことです。「parsererror:airportxmlは関数ではありません」というエラーが常に発生し、返される応答が完全なJSONであることを保証できます。
この行にコメントすると、奇妙な動作が発生しますjsonpCallback: "airportXML"、Jqueryはデフォルトのコールバック、つまりjquery12121212_2323232を提供し、すべてが正常に機能します。
もう1つ奇妙なことに、この呼び出しの前にアラート(// alert( "Test");)を設定すると、jsonpCallback: "airportXML"にコメントしなくても、すべてが完璧に機能し、成功アラートが正常に表示されます。
私の電話はフルタイムで完了していないと思います。
提案してください!!