2015-03-26 3 views
0

У меня возникли проблемы с доступом к заголовку «Set-Cookie», где хранится идентификатор AWSELB, чтобы установить его для последующих запросов.AWSELB Доступ к файлам cookie с Javascript

Я думал, что это была проблема с конфигурацией CORS, так что я пробовал:

cors.headers = [ 
    'Access-Control-Allow-Origin' : '*', 
    'Access-Control-Allow-Headers': 'origin, authorization, accept, content-type, x-requested-with, X-Auth-Token, Set-Cookie, set-cookie', 
    'Access-Control-Expose-Headers': 'Set-Cookie, set-cookie' 
] 
cors.allow.origin.regex = '.*' 
cors.expose.headers = 'Set-Cookie, set-cookie' 

В стороне сервера.

Я вижу все те заголовки CORS в ответе, все еще, когда я пытаюсь getAllResponseHeaders с клиентской стороны, я не вижу «Set-Cookie», и я не могу получить конкретный заголовок по имени.

У меня пропало что-то?

Я проверить это как в Chrome и Firefox

EDIT1: Это моя JS сторона

$.ajax({ 
      url: url, 
      type: "POST", 
      cache: false, 
      crossDomain: true, 
      data: JSON.stringify(dataMock), 
      dataType: "text", 
      contentType: "text", 
      success: function(response, textStatus, jqXHR) { 
       if (jqXHR.getResponseHeader('Set-Cookie')) { 
        document.cookie = jqXHR.getResponseHeader('Set-Cookie'); 
       } 
      } 
     }); 
    }; 
+0

'contentType:" text ",' is wrong - это не тип MIME, и вы не отправляете обычный текст. Это должно быть: 'contentType:" applatication/json "'. – Quentin

+0

Спасибо за точку, но я специально задал текст. Я думаю, что это не имеет отношения к проблеме. – Rafael

+0

Это не связано с проблемой, вот почему это комментарий. Это все еще совершенно неправильно. (И я сделал опечатку в своем предыдущем комментарии, это должно быть 'application/json') – Quentin

ответ

0

Cookies явно исключены из getResponseHeader и getAllResponseHeaders:

клиент. getAllResponseHeaders()

Возвращает все заголовки ответа, за исключением тех, чье имя поля Set-Cookie или Set-Cookie2.

клиент. getAllResponseHeaders()

Возвращает все заголовки ответа, за исключением тех, чье имя поля Set-Cookie или Set-Cookie2.

Если вы хотите получить к ним доступ непосредственно от JS, вы должны изменить сервер, чтобы он дублировал информацию в них в другом месте ответа.

+0

Я просто хочу сделать работу Sticky Session AWS ELB ... но этот файл cookie создается автоматически этим сервисом AWS, у меня нет контроля над тем, чтобы процесс – Rafael

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