Я создал API с Springboot 1.3.0. Его безопасность обеспечивается системами Stormpath и Spring Security. Предполагается, что этот API будет потребляться любым клиентом, везде. Я имею в виду мобильные телефоны и веб-страницы (AngularJS + HTML5). Без Stormpath клиент этой веб-страницы может успешно отправлять данные в API, однако, когда Stormpath добавлен в приложение, все вызовы от клиента к API завершаются ошибкой, и это сообщение об ошибке отображается в консоли: «XMLHttpRequest не может загрузить http://localhost:8080/api/save. для предполета является недопустимым (перенаправление) " Есть ли способ Stormpath для поддержки CORS в подобной архитектуре?Поддерживает ли Stormpath поддержку CORS для архитектуры Springboot + AngularJS?
Client (AngularJS) ------- удаленный вызов ------> Springboot API (Rest)
Вот служба 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 = {};
}]);
Я просто сделал это и не сработал. Однако он должен работать, даже если пользователь не аутентифицирован. Есть случаи, когда пользователи могут отправлять информацию через формы, даже если у них нет учетной записи. – blackjack