使用jQuery AJAX調用web服務。電話必須被鏈接。基於https://stackoverflow.com/a/995648/296575的解決方案,我創建了一個AJAX隊列。多鏈式jQuery AJAX POST web服務調用
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。第二次和第三次調用導致錯誤。 (parseerror,數據爲空)。
電話是跨域,這是由supressed:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
如果我添加異步:假給每個呼叫,所有的人都正確執行。 如果我改變了調用的順序,總是第一個正確執行。
任何人都可以幫我這個嗎?或告訴我如果你需要更多的信息。
謝謝!
'解析錯誤,數據是null'>不'SoapRequest2傳遞給'$ .ajax'時''和'SoapRequest3' null? –