我正在使用Jquery来创建soap请求。以下是肥皂要求的信封。
POST /netforumaiatest2/xweb/secure/netforumxml.asmx HTTP/1.1
Host: amstest.aia.org
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://www.avectra.com/2005/Authenticate"
<?xml version="1.0" encoding="utf-8"?>
<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:Body>
<Authenticate xmlns="http://www.avectra.com/2005/">
<userName>string</userName>
<password>string</password>
</Authenticate>
</soap:Body>
</soap:Envelope>
我在jquery中编写了代码
var soapMessage='<?xml version="1.0" encoding="utf-8"?><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:Body><Authenticate xmlns="http://www.avectra.com/2005/"><userName>user</userName><password>pass</password></Authenticate></soap:Body></soap:Envelope>';
$.ajax({
url: productServiceUrl,
type: "POST",
dataType: "xml",
data: soapMessage,
complete: endSaveProduct,
contentType: "text/xml; charset=\"utf-8\""
});
但是在endSaveProduct中,我得到了status = error
。如何通过$.ajax call
查看我发送的数据。请帮帮我。
答案 0 :(得分:1)
您可以使用beforeSend
选项和控制台记录数据:
beforeSend: function(data) {console.log(data);}
答案 1 :(得分:1)
我建议你用另一种方式做这件事。对PHP文件(或aspx)进行ajax调用,然后在那里进行SOAP调用。与javascript相比,你可以用这些语言中的soap做更多的事情。
如果您决定使用PHP,我会在一段时间后发现这个可爱的类重写:
class SoapClientDebug extends SoapClient {
public function __doRequest($request, $location, $action, $version) {
print_r($request);
return parent::__doRequest($request, $location, $action, $version);
}
}
简单地改变:
$client = new SoapClient('foo.wsdl');
使用
$client = new SoapClientDebug('foo.wsdl');
答案 2 :(得分:0)
使用Fiddler检查您的请求和回复。
答案 3 :(得分:0)
在这里,我需要什么。我想在这里打印HTTPRequest的响应。
function endSaveProduct(xmlHttpRequest, status)
{
$(xmlHttpRequest.responseXML)
{
alert(xmlHttpRequest.responseText);
通过在soap请求标头中添加操作来解决错误
$.ajax({
url: productServiceUrl,
type: "POST",
beforeSend: function (xhr){
xhr.setRequestHeader("SOAPAction", "URL/Authenticate");
//alert("in before send");
},
dataType: "xml",
data: soapMessage,
complete: endSaveProduct,
contentType: "text/xml; charset=\"utf-8\""
}).done(function () {alert("calling Authenticate");})
.fail( function() {alert("fail");});