原因:CORS标题'Access-Control-Allow-Origin'丢失

时间:2016-09-01 12:35:38

标签: ajax xmlhttprequest cors

我正在使用XMLHttpRequest使用javascript运行ajax。我收到错误

“原因:CORS标题'Access-Control-Allow-Origin'缺失”。

我正在使用Ajax中的其他域url。这是我的代码

if (mypostrequest.readyState==4){
                console.log(mypostrequest.status);
              if (mypostrequest.status==200 || window.location.href.indexOf('http')==-1){
               console.log('got it');
               console.log(mypostrequest.responseText);
               redirect_url = mypostrequest.responseText;
               //BTHit();
              }
              else{
               console.log('cant get data');
              }
}
var parameters='campaign_id='+campaign_id;
        mypostrequest.open('POST', 'http://mydserverip/get_campaign.php', true)
        mypostrequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        //mypostrequest.setRequestHeader('Access-Control-Allow-Origin', '*');
        mypostrequest.send(parameters);

在我的服务器上,我只是打印像

这样的数据
<?php male('myemail','test','testm');  echo "hello"; ?>

我收到了电子邮件,但是当我在我的控制台上查看时,我遇到了上述错误,没有任何回应。

和console.log的输出(mypostrequest.status);是0并且控制台显示无法获取数据。

我尝试了很多谷歌的解决方案,但无法解决我的问题。

我试过.htaccess也没有好运。

请帮帮我们。

1 个答案:

答案 0 :(得分:0)

我的API遇到了同样的问题。在PHP应用程序中,您需要添加标头以允许CORS。使用标题功能。

header('Access-Control-Allow-Origin: *')

上一行允许您的php应用从任何域访问。 您可以通过添加来源来限制域名访问权限。

header('Access-Control-Allow-Origin: http://exemple.com/myapp http://foobar.com/api')

如果您只想要一些方法来访问您的服务器(仅限GET或POST) 添加这些行

header('Access-Control-Allow-Methods:' . $YourMethods)

希望它有所帮助!

祝你有美好的一天! - Nic