[英]Jquery ajax SOAP no response
我不知道我到底发生了什么。 我正尝试致电肥皂服务,但即时通讯没有任何反应。
function soap_call(){
var wsUrl = "https://ws.cert.transactionexpress.com/portal/merchantframework/MerchantWebServices-v1?wsdl";
var soapRequest =
'<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://postilion/realtime/merchantframework/xsd/v1/"> \
<SOAP-ENV:Body> \
<v1:UpdtRecurrProfRequest> \
<v1:merc> \
<v1:id>7777778598</v1:id> \
<v1:regKey>BLHP7DK5W385J6WZ</v1:regKey> \
<v1:inType>1</v1:inType> \
<v1:prodType>5</v1:prodType> \
</v1:merc> \
<v1:cust> \
<v1:type>0</v1:type> \
<v1:contact> \
<v1:fullName>Test Person</v1:fullName> \
<v1:addrLn1>123 Main</v1:addrLn1> \
<v1:addrLn2>Second Floor</v1:addrLn2> \
<v1:city>Gilbert</v1:city> \
<v1:state>AZ</v1:state> \
<v1:zipCode>85296</v1:zipCode> \
<v1:type>1</v1:type> \
<v1:stat>1</v1:stat> \
</v1:contact> \
<v1:pmt> \
<v1:type>0</v1:type> \
<v1:card> \
<v1:pan>4485896261017708</v1:pan> \
<v1:sec>999</v1:sec> \
<v1:xprDt>1602</v1:xprDt> \
</v1:card> \
<v1:ordNr>Cust Ref ID Can be used for extra info</v1:ordNr> \
<v1:desc>Can be used to name wallet again</v1:desc> \
<v1:indCode>2</v1:indCode> \
</v1:pmt> \
</v1:cust> \
</v1:UpdtRecurrProfRequest> \
</SOAP-ENV:Body> \
</SOAP-ENV:Envelope>' ;
jQuery.ajax({
type: "POST",
url: wsUrl,
contentType: "text/xml; charset=\"utf-8\"",
dataType: "xml",
data: soapRequest,
//processData: false,
//async:true,
headers: {
SOAPAction: "UpdtRecurrProf"
},
complete: function (xmlHttpRequest) {
alert(xmlHttpRequest.responseXML);
},
});
}
我尝试使用此链接致电,然后它给了我正确的答复。
我没有肥皂方面的专业知识。 如果有人可以从这里帮助我,我将不胜感激。
只需与邮递员检查您的请求-请求本身就可以满足一切要求。 这是我的回应:
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:UpdtRecurrProfResponse xmlns="http://postilion/realtime/portal/soa/xsd/Faults/2009/01" xmlns:ns2="http://postilion/realtime/merchantframework/xsd/v1/">
<ns2:custId>1450956517822188336</ns2:custId>
<ns2:pmtId>1450956517853193808</ns2:pmtId>
<ns2:rspCode>00</ns2:rspCode>
</ns2:UpdtRecurrProfResponse>
</S:Body>
</S:Envelope>
出现问题是因为您使用了javascript,并且相同的来源策略不允许您请求与您的域不同的域-这有助于防止XSS攻击。
但是,如果远程主机提供了CORS标头,例如Access-Control-Allow-Origin: *
,它允许所有域都请求它,但它可以返回到该标头,但是它不会返回此标头案件:
Cache-Control → private
Content-Encoding → gzip
Content-Type → text/xml;charset=utf-8
Date → Thu, 24 Dec 2015 11:28:37 GMT
Server → WebServer
Transfer-Encoding → chunked
另外,您应该在浏览器控制台中看到此错误消息,该消息批准了我的建议。
对预检请求的响应未通过访问控制检查:所请求的资源上不存在“ Access-Control-Allow-Origin”标头
因此,问题不在于SOAP请求本身,而是您尝试通过javascript请求它。 通过后端(例如PHP)发出请求-它应该可以顺利进行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.