在AngularJS中获取CORS错误

时间:2015-09-13 09:10:59

标签: javascript php angularjs cors angularjs-http

我正在尝试使用基于https的API,它在POSTMAN和其他REST客户端中成功运行,但不在我的AngularJS应用程序中。

以下是代码 -

var req = {
    method: 'POST',
    url: 'https://agXXXXX.com/api/contact/',
    headers: {
        'Content-Type': undefined
    },
    data: user,
    withCredentials: true
};
$http(req)
    .then(function(data){
        console.log("--Data--");
        console.log(data);
    })

在关注几篇与CORS相关的文章后,我也将其包含在.config()中,但没有运气 -

$httpProvider.defaults.useXDomain = true;
$httpProvider.defaults.headers.common = {Accept: "application/json, text/plain, */*"};
$httpProvider.defaults.headers.post = {"Content-Type": "application/json;charset=utf-8"};

以下是我所面临的错误 -

Cors Error

让我知道我做错了什么,或者在这里失踪。

2 个答案:

答案 0 :(得分:0)

如果您只是需要测试您的应用,可以使用此Chrome插件:

https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi

但是如果你需要在生产中使用它,你需要配置你的服务器。如果您使用的是SPRING:

HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST,PUT, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("Access-Control-Allow-Headers", "Authorization,Content-Type");
        chain.doFilter(req, res);

答案 1 :(得分:0)

您应该添加服务器代码标头以启用cors。

在这个网站中你可以阅读它,并根据你后端的语言获得实现它的代码:

http://enable-cors.org/