XMLHttpRequest到SAP Webservice - CORS问题

时间:2017-07-28 06:15:41

标签: javascript soap cors apache2 sap

我正在尝试构建一个应该使用SOAP与SAP Web服务进行通信的网站。 Web服务在JAVA程序和SOAPUI中正常工作。 该网站托管在运行Apache2 HTTP服务器的Raspberry Pi上。当我打开该网站时,我的网络浏览器告诉我存在CORS问题。

Web服务器和Web服务是本地的,都具有静态IP地址。有什么我必须在apache2方面进行更改以使其正常工作吗?根据我的理解,CORS在测试网站时可能是一个问题,因为它随后从localhost启动。但是,我的网站托管在apache2服务器上,因此应该与SAP服务器位于同一个域中。 CORS应该不是问题。 Raspberry Pi存在DNS问题,无法解析网络上的任何问题。

注意:在这种情况下,apache2是客户端,因为它正在与SAP服务器上的Web服务进行通信。

这是我的HMTL和JS代码:

<!DOCTYPE html>
<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <div>Hallo Welt</div>
        <script>

            var url = "http://user:password@172.22.11.11:8000/path/to/webservice"

            var soap = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style"> ' +
                       '<soapenv:Header/>' +
                       '<soapenv:Body>' +
                       '<urn:Test>' +
                       '</urn:Test>' +
                       '</soapenv:Body>' +
                       '</soapenv:Envelope>';

            var request = new XMLHttpRequest();

            request.open('GET', url, true);
            request.setRequestHeader('Content-Type','text/xml; charset=utf-8');
            request.setRequestHeader('Accept', 'text/xml, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2');
            request.setRequestHeader('SAOPAction','urn:specialwebservice');
            //request.AppendHeader("Access-Control-Allow-Origin", "*");
            request.addEventListener('load', function(event) {
               if (request.status >= 200 && request.status < 300) {
                  console.log(request.responseText);
               } else {
                  console.warn(request.statusText, request.responseText);
               }
            });
            request.send(soap);

        </script>

    </body>
</html>

0 个答案:

没有答案