我試圖使用AJAX調用make一個SOAP調用(不是跨站點,所以它不應該遇到與代理等困難)
但是,這需要XHR,SOAPTarget和SOAPAction中的兩個自定義標題。目前,我使用jQuery使Ajax調用就像這樣:XMLHTTPResquest.setRequestHeader()不添加自定義頁眉
jQuery.ajax({
url: this.location,
type: 'POST',
data: sm,
dataType: "xml",
contentType: "text/xml",
processData: false,
beforeSend: function(xhr){
xhr.setRequestHeader(
"SOAPTarget",
this.location
);
xhr.setRequestHeader(
"SOAPAction",
this.urn
);
},
success: jQuery.jSOAPClient.success,
error: jQuery.jSOAPClient.error
});
的代碼如預期均實行,但是當我在Firebug查看頭,還有對他們沒有任何變化。
經過測試,它在Safari和FF上爲我工作。確保你檢查了「請求標題」。之後,請確認服務器方面的情況。 – airportyh
感謝您的關注!有趣的是,這對你有用。最終的答案竟然是一個範圍界定問題。我不認爲你有一份你運行的測試的副本? –
作爲一個附註,我一直使用「header:」標籤來代替「beforeSend」。 'header:{SOAPAction:requestList [reqItem] .SOAPAction,SOAPTarget:requestList [reqItem] .SOAPTarget}'它避免了函數調用的開銷。 – Richard