私はJqueryJSONPの2つの呼び出しを下回っています。これはクロスドメイン呼び出し用です。ページが読み込まれると、これらの2つの呼び出しが発生します。問題は、呼び出しが非常に高速で、高速が完了する前に2番目の呼び出しが発生することです。 2回目の呼び出しでパーサーエラーが発生します(airxml:は関数ではありません)。
以下のコードは、呼び出しでasync:falseを取得した場合に正常に機能しますが、クロスドメインポリシーに従って、同期呼び出しをサポートしていません。
var oXMLHTTP, i, length, oData, sValue, sDisplay, sName, sMatch, oRegExp;
var qr = "&jsonpcall=true";
if (!oDropdown)
return;
oXMLHTTP = this.createXMLHttpRequest();
this.FilterUrl = sFilterUrl;
if (sFilterUrl != previousFilterUrl)
{
var regUrl = sFilterUrl;
var regquest = $.ajax({
url: regUrl+qr,
type: "GET",
async: false,
cache: true,
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
jsonpCallback: "airport",
success: function(data, textStatus, jqXHR)
{
if (data.result[0] != '')
{
sFilterData = data.result[0];
}
}
});
previousFilterUrl = sFilterUrl;
}
if(!fireRequestOnce ||(fireRequestOnce && retrievedData == null))
{
var regUrl = sXML;
var airquest = $.ajax({
url: regUrl+qr,
async: false,
dataType: 'jsonp',
jsonpCallback: 'airxml',
cache: true,
success: function(data, textStatus, jqXHR)
{
var xmlDoc = $.parseXML(data.myresult);
oData = xmlDoc.documentElement.childNodes;
}
});
}
最善のアプローチを提案してください。成功イベントが発生した後に変数を配置してから、2番目の呼び出しを呼び出そうとしましたが、機能しませんでした。