角肥皂No' Access-Control-Allow-Origin'和PHP肥皂服务

时间:2016-01-19 10:18:54

标签: php angularjs soap cors

我尝试使用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:*");

1 个答案:

答案 0 :(得分:-1)

也许在脚本开头的server.php上有一个BOM char?在这种情况下,该char将在响应正文中发送,并且永远不会发送标头(如果开始发送正文,则无法发送标头)。

编辑:尝试使用Notepad ++更改文件编码,例如