首页 新闻 会员 周边

请问 jquery ajax 如何调用 有 soapheader 验证的 WebService ?

0
悬赏园豆:50 [待解决问题]

网上找的例子

js:

function CallWebMethodWithHeader() {
var soapXML =
"<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>" +
"<soap:Header>" +
"<TestHeader xmlns='http://tempuri.org/'>" +
"<HeaderData>111111111111</HeaderData>" + "</TestHeader>" + "</soap:Header>" +
"<soap:Body>" +
"<TestSoapHeader xmlns='http://tempuri.org/' />" + "</soap:Body>" +
"</soap:Envelope>";

$.ajax({
url: "WebService4JQuery.asmx/TestSoapHeader",
type: "POST",
dataType: "xml",
contentType: "text/xml; charset=utf-8",
data: soapXML,
beforeSend: function (xhr) {
xhr.setRequestHeader('SOAPAction', 'http://tempuri.org/TestSoapHeader');
},
success: function (data) {
debugger
alert("webmethod call success");
},
error: function (err) {
debugger
alert("webmethod call failed");
}
});
}

cs:

public class WebService4JQuery : System.Web.Services.WebService
{
public TestHeader THeader;

[WebMethod]
[SoapHeader("THeader")]
public string TestSoapHeader()
{

return "THeader Value:11111111111";
}
}

public class TestHeader : SoapHeader
{
public string HeaderData { get; set; }
}

虽然调用成功了,但是返回的数据呢,好些是解析错误了!如图:

 

 

402786886zy的主页 402786886zy | 初学一级 | 园豆:96
提问于:2014-03-31 23:47
< >
分享
所有回答(2)
0

我看你ajax里 dataType 设置的是“xml”;但是你返回的数据格式明显不是xml;估计是这里的问题。

苗 ︶ㄣ | 园豆:289 (菜鸟二级) | 2014-04-01 09:08
0

用jQuery SOAP插件
https://github.com/doedje/jquery.soap

Giant150 | 园豆:1165 (小虾三级) | 2014-04-06 10:12

多谢

支持(0) 反对(0) 分进合击 | 园豆:127 (初学一级) | 2017-11-16 09:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册