AWS S3:No' Access-Control-Allow-Origin'标头出现在请求的资源上

时间:2016-06-23 19:31:29

标签: angularjs angular-resource

在我的角度应用中,当我尝试制作 REST api 时出现以下错误。

enter image description here

我的代码如下:

角度控制器

 $scope.saveTeam = function() {

    var club = {};
    club.name = $scope.selectedClub;
    var service = API.getService();

    service.create( {}, { club: club },
      function( res ) {
      }, function(err) {
        console.log("club err : ", err);
      });

  } 

}

Angular Factory

  // Clubs service used for communicating with the coaches REST endpoint
 angular
   .module('app')
   .factory('API', ['$resource', 'session', function($resource, session) {
    var mainUrl = '/clubs';

    return {
        getService : function() {
            var token = session.getToken();
            return $resource(mainUrl, { }, {
                createClub: {
                    method: 'POST',
                    url: mainUrl,
                    isArray: false,
                    headers: { 'Token': token }
                }
            })
        }
    }
});

如何解决此错误?在此先感谢。

2 个答案:

答案 0 :(得分:0)

安装this chrome扩展程序以避免CORS错误。此错误通常是由于客户端发出的请求中的安全标头。在向服务器发出任何请求之前,请使用下面显示的代码行。

 $http.defaults.headers.post["Content-Type"] = "application/json";

答案 1 :(得分:0)

CORS的工作原理是客户端和服务器之间的简单HEADERS游戏。浏览器(客户端)在Origin键中设置案例集中的当前域" http://localhost:9001"。反过来,服务器验证该值是受信任的那些值,并使用密钥Access-Control-Allow-Origin以另一条信息(始终在标题中)进行响应。如果两个值相等,则浏览器使用响应,否则您将出错。

因此,将来您需要配置服务器,但是对于开发,您可以使用“禁用相同原始策略”启动Chrome浏览器。使用禁用安全性时,浏览器不会设置原点,您也不会遇到问题。这是问题所以请检查以下链接:

Disable same origin policy in Chrome