Stormpath是否允许对Springboot + AngularJS架构进行CORS支持?

时间:2016-02-10 19:05:25

标签: angularjs spring-boot stormpath

我已经使用Springboot 1.3.0构建了一个API。它的安全性由Stormpath和Spring Security框架提供。任何客户端都应该使用此API。我指的是手机和网页(AngularJS + HTML5)。 如果没有Stormpath,该网页客户端能够成功将数据发布到API,但是,当Stormpath添加到应用程序时,从客户端到API的所有调用都会失败,并且此错误消息显示在控制台中:" XMLHttpRequest无法加载{ {3}}。预检的响应无效(重定向)" 有没有办法让Stormpath在类似的架构中支持CORS?

客户端(AngularJS)-------远程调用------> Springboot API(休息)

这是AngularJS服务。如前所述,服务调用成功,没有Stormpath。

app.service('apiService', function($http, $q, CONST){

this.save = function(person){

    var def = $q.defer();

    $http(
            {
                url:CONST.BASE_URL+'/save',
                method:'POST',
                data: person,
                headers: {
                    'Content-Type':'application/json'
                    }
            }
        ).then(

        function success(response){
            def.resolve(response.data);
        },

        function error(response){
            def.resolve(response.data);

        });

    return def.promise;
};

});

这是app.module的配置

app.config(['$httpProvider', function($httpProvider){


$httpProvider.defaults.headers.common["Accept"] = "application/json";
$httpProvider.defaults.headers.common = {};
$httpProvider.defaults.headers.post = {};
$httpProvider.defaults.headers.put = {};
$httpProvider.defaults.headers.get = {};

}]);

1 个答案:

答案 0 :(得分:1)

我们从未尝试过针对CORS的集成。我认为问题来自于如果用户未经过身份验证,Stormpath将重定向到/login页面,并且CORS不允许这样做。只是为了验证这是实际问题,您可以先尝试对用户进行身份验证,然后在用户通过身份验证后转到http://localhost:8080/api/save吗?

免责声明,我是Stormpath的贡献者。