AngularJS аутентифицируется на стороне сервера с помощью REST и получает файл cookie JSESSIONID. На следующем шаге я пытаюсь получить некоторые данные JSON со стороны сервера, используя REST вместе с файлом cookie сеанса, полученным на предыдущем шаге. Вот код на стороне клиента:
getSomeJSONDataFromServer:function() {
var deferred = $q.defer();
$http({
method: 'POST',
withCredentials: true,
url: "http://domain.name/app/someURL",
headers:{
'Accept':'application/json',
'Content-Type':'application/json; charset=utf-8',
'Access-Control-Request-Headers': 'X-Requested-With, content-type, accept, origin, withcredentials'
}
})
.success(function(data, status, headers, config) {
// handle data
})
.error(function(data, status, headers, config) {
// handle error
});
return deferred.promise;
}
Приведенный выше код работает нормально:
Проблемы начинаются, когда я отправляю некоторые данные в приведенном выше теле запроса POST.
...
$http({
method: 'POST',
withCredentials: true,
url: "http://domain.name/app/someURL",
headers:{
'Accept':'application/json',
'Content-Type':'application/json; charset=utf-8',
'Access-Control-Request-Headers': 'X-Requested-With, content-type, accept, origin, withcredentials'
},
data: '{}'
})
.success(...
Приведенный выше код не работает в предварительном запросе:
Похоже, что сервер запускает новый сеанс, потому что файл cookie сеанса по какой-то причине не отправляется. Во всяком случае, я чувствую, что мне не хватает чего-то очень простого, какого-то заголовка или чего-то в этом роде... Любые идеи приветствуются. Заранее спасибо.