AngularJs 1.x как получить токен xcrsf - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь получить токен 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 дня!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...