xmlhttprequest,浏览器500错误;在 soapui 工作正常
xmlhttprequest, 500 error in browser; works fine in soapui
我需要调用的网络服务有问题。
情况
我需要从我工作的公司构建的网络服务中获取信息。如果我尝试通过 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 中完全相同,所以这应该是不可能的。
我该如何解决?
尝试过
很多事情,但没有任何帮助。
简化连接(直接而不是通过代理)后,错误日志中出现错误。
说是端点不对,不过好像没问题。 XML 似乎还可以。
在尝试了一些事情之后我找到了解决方案:
解决方案
下一行给出了错误:
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
我已经从我的脚本中删除了这一行,现在它可以正常工作了。
我需要调用的网络服务有问题。
情况
我需要从我工作的公司构建的网络服务中获取信息。如果我尝试通过 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 中完全相同,所以这应该是不可能的。 我该如何解决?
尝试过
很多事情,但没有任何帮助。
简化连接(直接而不是通过代理)后,错误日志中出现错误。
说是端点不对,不过好像没问题。 XML 似乎还可以。
在尝试了一些事情之后我找到了解决方案:
解决方案
下一行给出了错误:
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
我已经从我的脚本中删除了这一行,现在它可以正常工作了。