如何访问 SOAP 响应属性?
所有
表格过去几天我正在寻找如何使用 JS 访问肥皂,毕竟我从这个链接得到了解决方案 最简单的 SOAP 示例
现在我可以在警报中收到我的肥皂请求。 但我想使用它的属性并想要打印响应(我的意思是解析响应并显示)
这是我的代码
const xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', 'http://service.project-development-site.de/soap.php', true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
alert(xmlhttp.responseText);
// http://www.terracoder.com convert XML to JSON
let json = XMLObjectifier.xmlToJSON(xmlhttp.responseXML);
const result = json.Body[0].GetQuoteResponse[0].GetQuoteResult[0].Text;
// Result text is escaped XML string, convert string to XML object then convert to JSON object
json = XMLObjectifier.xmlToJSON(XMLObjectifier.textToXML(result));
alert(symbol + ' Stock Quote: $' + json.Stock[0].Last[0].Text);
}
};
xmlhttp.setRequestHeader('SOAPAction', 'http://service.project-development-site.de/soap.php');
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
const xml =
'<?xml version="1.0" encoding="utf-8"?>' +
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">' +
'<soapenv:Header/>' +
'<soapenv:Body>' +
'<tem:loginUserSoapInPart>' +
'<tem:userName>user</tem:userName>' +
'<tem:passWord>pwd</tem:passWord>' +
'<tem:accesToken>acktoken</tem:accesToken>' +
'</tem:loginUserSoapInPart>' +
'</soapenv:Body>' +
'</soapenv:Envelope>';
xmlhttp.send(xml);
,我在警报中得到了这样的响应
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/">
<SOAP-ENV:Body>
<ns1:loginUserSoapOutPart>
<ns1:error>
<ns1:errorCode>0</ns1:errorCode>
<ns1:errorShortDesc>OK</ns1:errorShortDesc>
<ns1:errorLongDesc>SOAP request executed successfully .</ns1:errorLongDesc>
</ns1:error>
<ns1:soapOut>
<ns1:accesToken>accesToken</ns1:accesToken>
<ns1:ACK>ACK</ns1:ACK>
</ns1:soapOut>
</ns1:loginUserSoapOutPart>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
我想显示这个响应属性,如 errorShortDesc、errorLongDesc 等... 我怎样才能?
提前致谢
All
Form last few days i am finding how to access soap using JS, and after all i got the solution from this link Simplest SOAP example
Now i am able to get my soap request in alert.
but i want to use its property and want to print the response (i mean parse response and display)
this is my code
const xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', 'http://service.project-development-site.de/soap.php', true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
alert(xmlhttp.responseText);
// http://www.terracoder.com convert XML to JSON
let json = XMLObjectifier.xmlToJSON(xmlhttp.responseXML);
const result = json.Body[0].GetQuoteResponse[0].GetQuoteResult[0].Text;
// Result text is escaped XML string, convert string to XML object then convert to JSON object
json = XMLObjectifier.xmlToJSON(XMLObjectifier.textToXML(result));
alert(symbol + ' Stock Quote:
and i got response in alert like this
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/">
<SOAP-ENV:Body>
<ns1:loginUserSoapOutPart>
<ns1:error>
<ns1:errorCode>0</ns1:errorCode>
<ns1:errorShortDesc>OK</ns1:errorShortDesc>
<ns1:errorLongDesc>SOAP request executed successfully .</ns1:errorLongDesc>
</ns1:error>
<ns1:soapOut>
<ns1:accesToken>accesToken</ns1:accesToken>
<ns1:ACK>ACK</ns1:ACK>
</ns1:soapOut>
</ns1:loginUserSoapOutPart>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
And i want to display this response property like errorShortDesc,errorLongDesc etc...
How can i?
Thanks in Advance
+ json.Stock[0].Last[0].Text);
}
};
xmlhttp.setRequestHeader('SOAPAction', 'http://service.project-development-site.de/soap.php');
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
const xml =
'<?xml version="1.0" encoding="utf-8"?>' +
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">' +
'<soapenv:Header/>' +
'<soapenv:Body>' +
'<tem:loginUserSoapInPart>' +
'<tem:userName>user</tem:userName>' +
'<tem:passWord>pwd</tem:passWord>' +
'<tem:accesToken>acktoken</tem:accesToken>' +
'</tem:loginUserSoapInPart>' +
'</soapenv:Body>' +
'</soapenv:Envelope>';
xmlhttp.send(xml);
and i got response in alert like this
And i want to display this response property like errorShortDesc,errorLongDesc etc...
How can i?
Thanks in Advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试使用这种方式
Try using this way
jQuery 从 1.5 开始添加了一个
parseXML
实用程序,用于将字符串解析为 XML,然后相应地访问节点。在您的示例中,您可以按如下方式使用它,以便
response
是服务器的回复:jQuery added since 1.5 a
parseXML
utility to parse a string to XML, and then access your nodes accordinglyIn your example, you can use it as follows such that
response
is the server's response: