如何使用jquery向ASMX Web服务调用添加自定义标头?

我有一个带有以下合同的网络服务:

POST /Service/service.asmx HTTP/1.1 Host: xxx.xxx.xxx Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "xxx.xxx.xxx/Service/Method"     string string string     xml    

我试图使用jquery调用该服务。 这是我的代码:

 $.ajax({ url: serverUrl + 'Method', type: "POST", dataType: "xml", data: { xml: "xml" }, beforeSend: function (req) { req.setRequestHeader('Header', '' +'4' +'name' +'user' +'pass' +''); }, success: function (data) { alert(data.text); }, error: function (request, status, errorThrown) { alert(status); } }); 

但是,标题内容不会传递给Web服务? 我如何将标题凭据传递给我的Web服务调用?

soap:Header是XML / SOAP数据“payload”中的XML元素。 这与HTTP标头不同。 在合同中, SOAPAction (以及Content-Length等)是一个HTTP头。

XmlHttpRequest.setRequestHeader用于指定HTTP标头。 它与XML内部的任何内容(直接)无关。

Simplest SOAP示例的第一个答案应该给出一个如何发出SOAP请求的示例。 注意:

 xmlhttp.setRequestHeader("SOAPAction", "http://www.webserviceX.NET/GetQuote"); xmlhttp.setRequestHeader("Content-Type", "text/xml"); ... var xml = '' + ' 

它包含soap:Envelope和子元素soap:Headersoap:Body

快乐的编码。