我正在尝试使用AJAX来调用SOAP调用(不是跨站点,所以它不应该遇到代理等问题)。
但是,这需要XHR,SOAPTarget和SOAPAction中的两个自定义标头。目前,我正在使用jQuery来进行ajax调用:
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中查看标题时,它们没有变化。
答案 0 :(得分:2)
XHR不会接受带有空值的请求标头,事实证明,此块中的this
是指Ajax调用,而不是ajax调用所属的对象。
这个问题可能应该改名为“noob errorakes happen”。
答案 1 :(得分:1)
我最近遇到了类似的问题。而不是使用'beforeSend'尝试使用ajaxSend。