Я пытаюсь получить токен xcsrf из моего углового приложения, а затем использовать токен для отправки данных в бэкэнд.
При отключении CORS в localhost я могу установить токен xcsrf и использовать его дляпубликовать мои данные без проблем.
Но когда я включаю защиту, похоже, что новый браузер выполняет автоматический запрос опции перед GET.
function fetchXCSRF(){
var deferred = $q.defer();
$http({
url: reservationsEndPoint,
method: 'GET',
withCredentials: true,
headers:
{'X-CSRF-Token':'Fetch'},
timeout:5000,
}).then(function (response) {
// console.log(response.headers('x-csrf-token'));
// var xcsrfToken = response.headers('x-csrf-token');
// xcsrfToken = response.headers('x-csrf-token');
deferred.resolve(response);
}, function (error) {
deferred.reject(error.data.error.message.value);
});
return deferred.promise;
}
И затем заголовок xcsrf-tokenзаголовок ответа пуст,
fetchXCSRF().then(function(responseToken) {
console.log(responseToken.headers('x-csrf-token'));
$http({
url: reservationsEndPoint,
method: 'POST',
headers:
{'x-csrf-token': responseToken.headers('x-csrf-token')},
data: newReservation,
timeout:5000,
}).then(function (response) {
deferred.resolve(response.d);
modelBuilder.setReservationToDisplay(response);
}, function (error) {
if(error.data.error.message.value.indexOf('not available.')>-1){
console.log("There is already a reservation at this time");
}
deferred.reject(error.data.error.message.value);
});
});
return deferred.promise;
Большое спасибо за вашу помощь, я пробовал более 1 дня!