无法将ajax请求发送到其他域 - Angular js

时间:2014-03-03 18:03:38

标签: angularjs cors

我们如何从角度js执行跨站点ajax请求?我试过这样做:

$http.post('http://cross.local', data)

但是浏览器抛出错误:

  

请求时没有'Access-Control-Allow-Origin'标头   资源。因此不允许原点访问。

所以我添加了标题

  

接入控制允许凭证:真
  访问控制允许的方法:GET,POST,DELETE,OPTIONS
  访问控制允许来源:*

但我仍然得到同样的错误 我哪里出错了?

2 个答案:

答案 0 :(得分:0)

您需要在Angular中启用CORS支持,默认情况下该功能

yourApp.config(['$httpProvider', function($httpProvider) {
        $httpProvider.defaults.useXDomain = true;
        delete $httpProvider.defaults.headers.common['X-Requested-With'];
    }
]);

第一行启用CORS支持,第二行删除通常使用Ajax请求发送的头。

如果您不希望在应用中无处不在,则需要微调设置默认值的位置。

答案 1 :(得分:0)

在服务器中,我忘记为POST请求添加处理程序,因此对于每个发布请求,在请求的资源上存在“否”Access-Control-Allow-Origin'标头。因此不允许原点进入。服务器抛出错误。当我添加POST处理程序时,它工作