我遇到了需要调用的网络服务的问题。
我需要从网络服务获取信息,由我工作的公司构建。如果我尝试通过SOAPUI获取信息,那么没有任何问题,我在响应中获得了所需的信息。但是在编辑脚本以便我可以通过浏览器获得它后,我得到500错误。
function soap() {
try {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', 'https://**testserver**/test/services/smsproxy2.smsproxy2HttpsSoap11Endpoint', true);
// build SOAP request
var sr =
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sms="http://**service**/smsreport">' +
'<soapenv:Header/>' +
'<soapenv:Body>' +
'<sms:GetSMSReport>' +
'<sms:FromDate>2015-01-01</sms:FromDate>' +
'<sms:ToDate>2015-12-12</sms:ToDate>' +
'</sms:GetSMSReport>' +
'</soapenv:Body>' +
'</soapenv:Envelope>';
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
alert('Working fine! See the console.');
}
}
}
// Send the POST request
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
var result = xmlhttp.send(sr);
}
catch (error) {
alert('An error occurred: ' + error);
}
}
soap();
这整个代码放在一个html文件中。此代码位于html head标记中的脚本标记之间。
**testserver**
和**service**
部分在实际脚本中有所不同。
只要我在浏览器中打开此(html)文件,我就会在控制台中收到500(内部错误)消息。使用此消息指定的行是设置xmlhttp.send(sr)
操作的行。
我无法在服务器中获取所需的信息。所以我无法在网页上显示任何内容。
为什么我在浏览器中出现500错误并且在SOAP UI中没有问题?在浏览器中调用的URL与在SOAP UI中完全相同,因此这是不可能的。 我该如何解决这个问题?
很多事情,但没有任何帮助。
答案 0 :(得分:0)
使连接更容易(直接而不是通过代理),错误日志中出现错误。
它说端点不对,但这似乎没问题。 XML也似乎没问题。
在尝试了一些事情后,我找到了解决方案:
以下行给出错误:
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
我已经从我的脚本中删除了这一行,现在它可以正常工作。