$http не отправляет файлы cookie в запросах



мы работаем над веб-сервисом RESTful с Сервлетами AngularJS и Java.
Когда пользователь входит в систему, наш сервер отправляет заголовок "Set-Cookie"на интерфейс. В Angular мы получаем доступ к заголовку через $cookies (ngCookie-модуль) и установите его.
enter image description here



теперь, когда пользователь вошел в систему, он может, например, удалить некоторые вещи. Поэтому интерфейс отправляет запрос GET на серверную часть. Поскольку мы работаем на разных доменах, нам нужно установить некоторые заголовки CORS, а Angular делает опции запроса до фактического получения запрос:



параметры запроса:
OPTIONS request



сделать запрос
GET request



мы делаем это в Angular через $ http модуль, но он просто не будет отправлять cookie, содержащий JSESSIONID.



как я могу разрешить Angular отправлять куки?

641   2  

2 ответов:

в вашей конфигурации, DI $httpProvider а затем установите withCredentials в true:

.config(function ($httpProvider) {
    $httpProvider.defaults.withCredentials = true;
    //rest of route code
})

информация об angularjs withCredentials:http://docs.angularjs.org/api/ng. $ http

какие ссылки на статью mozilla: https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS?redirectlocale=en-US&redirectslug=HTTP_access_control#section_5

$http.get("URL", { withCredentials: true })
  .success(function(data, status, headers, config) {})
  .error(function(data, status, headers, config) {});

еще одна вещь, чтобы иметь в виду: вам нужно есть сторонние куки включены. Если у вас он глобально отключен в Chrome, нажмите на "i"-символ слева от доменного имени, затем куки, затем "заблокирован" и разблокируйте целевой домен.

Comments

    Ничего не найдено.