XMLHTTPRequest.setRequestHeader()不添加自定义页眉

时间:2011-10-21 14:58:58

标签: javascript jquery ajax soap xmlhttprequest

我正在尝试使用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中查看标题时,它们没有变化。

2 个答案:

答案 0 :(得分:2)

XHR不会接受带有空值的请求标头,事实证明,此块中的this是指Ajax调用,而不是ajax调用所属的对象。

这个问题可能应该改名为“noob errorakes happen”。

答案 1 :(得分:1)

我最近遇到了类似的问题。而不是使用'beforeSend'尝试使用ajaxSend