我正在尝试构建一个应该使用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>