我尝试使用angular-soap模块来使用用php编写的远程soap服务。 对于服务器,请遵循以下示例:php soap server 在服务器端,我添加了:
header("Access-Control-Allow-Origin:*");
但是,在浏览器上我得到错误(在/ etc / hosts 127.0.0.1上有别名" prove.locali"):
XMLHttpRequest无法加载 http://192.168.89.210/soapserver/server.php?wsdl。没有 '访问控制允许来源'标题出现在请求的上 资源。起源' http://prove.locali'因此是不允许的 访问。
如果我只是在server.php文件中输出一些json,那么标题就会起作用而且没有错误。
<?php
header("Access-Control-Allow-Origin:*");
echo json_encode($_REQUEST);
?>
我也尝试过很多公共肥皂服务,但同样的错误。
我对使用这种特定的肥皂服务并不感兴趣。我只想用angular-soap和简单的远程肥皂服务创建一个工作示例。
我很确定我在客户端丢失了一些内容,但错误是误导性的。
请看下面的代码。
客户:
var base_url = "http://192.168.89.210/soapserver/server.php";
var action = "getWebUrl";
var params = {'name': 'google'};
return $soap.post(base_url, action, params);
您可以在此处查看server.php脚本和wsdl文件:soap example。 我刚刚更改了server.php添加:
header("Access-Control-Allow-Origin:*");
答案 0 :(得分:-1)
也许在脚本开头的server.php上有一个BOM char?在这种情况下,该char将在响应正文中发送,并且永远不会发送标头(如果开始发送正文,则无法发送标头)。
编辑:尝试使用Notepad ++更改文件编码,例如