WebサービスへのjQuery AJAX呼び出しを使用しています。呼び出しは連鎖する必要があります。https://stackoverflow.com/a/995648/296575のソリューションに基づいて、AJAX キューを作成しました。
function ajaxQueue(step) {
switch(step) {
case 0: $.ajax({
type: "POST",
url: "url",
data: SoapRequest1,
contentType: "text/xml",
complete: storeData1
}); break;
case 1: $.ajax({
type: "POST",
url: "url",
data: SoapRequest2,
contentType: "text/xml",
complete: storeData2
}); break;
case 2: $.ajax({
type: "POST",
url: "url",
data: SoapRequest3,
contentType: "text/xml",
complete: storeData3
}); break;
}
}
//start ajaxQueue
ajaxQueue(0);
function storeData1(xmlHttpRequest, status)
{
updateData1(xmlHttpRequest.responseXML);
ajaxQueue(1);
}
function storeData2(xmlHttpRequest, status)
{
updateData2(xmlHttpRequest.responseXML);
ajaxQueue(2);
}
function storeData3(xmlHttpRequest, status)
{
updateData3(xmlHttpRequest.responseXML);
}
現在、次の問題があります。関数が実行されると、最初のケースのみが Web サービスから正しい XML を返します。2 番目と 3 番目の呼び出しでエラーが発生します。(解析エラー、データが null です)。
呼び出しはクロスドメインであり、次によって抑制されます。
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
各呼び出しに async:false を追加すると、すべてが正しく実行されます。呼び出しの順序を変更すると、常に最初の呼び出しが正しく実行されます。
誰でもこれで私を助けることができますか?または、さらに情報が必要な場合は教えてください。
ありがとうございました!