xmlhttprequest,浏览器出错500;在soapui中工作得很好

时间:2015-02-19 10:05:25

标签: javascript browser soap 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中完全相同,因此这是不可能的。 我该如何解决这个问题?

试过

很多事情,但没有任何帮助。

1 个答案:

答案 0 :(得分:0)

使连接更容易(直接而不是通过代理),错误日志中出现错误。

它说端点不对,但这似乎没问题。 XML也似乎没问题。

在尝试了一些事情后,我找到了解决方案:

解决方案

以下行给出错误:

xmlhttp.setRequestHeader('Content-Type', 'text/xml');    

我已经从我的脚本中删除了这一行,现在它可以正常工作。