2015-10-21 2 views
0

Мне нужно создать еще одну простую html-страницу для JHipster, и она должна выполнять запросы AJAX. Он содержит крошечное AngularJS приложение, поэтому я скопировал часть кода JHipster:JHipster и AngularJS: Как правильно обращаться с CSRF в запросах AJAX?

var app = angular.module('app', ['dep1', 'dep2', 'dep3']); app.config(function ($httpProvider) { $httpProvider.defaults.xsrfCookieName = 'CSRF-TOKEN'; $httpProvider.defaults.xsrfHeaderName = 'X-CSRF-TOKEN'; });

Затем я выполнить HTTP запросы, как это:

$http.post("/controller/execute", {code: ourCode})

И генерирует ошибку. Однако, я перезагружаю страницу, и все работает как шарм. Тогда я grep'ed источники и обнаружил, что в auth.session.service.js вы используете следующий код, чтобы получить маркер CSRF: $http.get('api/account');

я добавил этот фрагмент моей веб-приложение, и теперь он прекрасно работает.

Однако мне интересно, есть ли лучшее решение (избегая дополнительного запроса?). Я подозреваю, что вопрос слишком широк, но не может думать, как сделать его простым.

ответ

0

По умолчанию JHipster обрабатывает CSRF правильно, используя Spring Security на стороне сервера и AngularJS на стороне клиента.

Как вы сказали, вы просто скопировали код JHipster: вы действительно используете JHipster или просто копируете/вставляете код на стороне клиента? Это не сработает, если у вас нет правильно настроенного сервера, вот где наша работа.

Обычно вам не нужно копировать/вставлять эту конфигурацию AngularJS, мы делаем все это для вас.

Смежные вопросы