Файл cookie CORS не установлен на кросс-доменах, с использованием fetch, установки учетных данных: «include» и происхождение были установлены - PullRequest
0 голосов
/ 10 июля 2019

Я использую fetch для выполнения запроса к бэкэнду.Cookie не устанавливается, когда я использую другой домен.Файл cookie устанавливается, когда я использую тот же домен.

Почему он не установлен?

Я изменил свой файл / etc / hosts, чтобы использовать псевдонимы для тестирования с использованием одного и того же и другого домена, и убедился, что они не внесены в черный список браузером .

Если я использую local-test-frontend.com как для браузера, так и для домена сервера, это работает, но если я изменяю URL-адрес бэкенда на local-test-backend.com, он не работает.

* Обратите внимание, что мой интерфейсный URL-адрес Iпроверить это с * http://local-test-frontend.com:3000/login

Javascript

    fetch('http://local-test-backend.com/login',  {
        mode: 'cors',
        method: 'POST',
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json',
        },
        body: JSON.stringify(loginRequest),
        credentials: 'include'
    }).then(// Other code here.....

Заголовки ответа сервера

Access-Control-Allow-Credentials    
true
Access-Control-Allow-Origin 
http://local-test-frontend.com:3000
Content-Length  
103
Content-Type    
application/json
Date    
Wed, 10 Jul 2019 07:23:49 GMT
Server  
Werkzeug/0.15.1 Python/3.7.3
Set-Cookie  
MY_TOKEN=a7b8ad50f19…end.com; Path=/; SameSite=Lax

1 Ответ

1 голос
/ 10 июля 2019

Я просто пытаюсь получить набор файлов cookie для моего текущего домена, вызывая сервер в другом домене.

Вы не можете, по крайней мере, не напрямую. Куки принадлежат тому источнику, который их установил.

Самое близкое, что вы могли бы получить, - это чтобы другой домен возвратил данные в формате, отличном от Cookie (например, в теле ответа), а затем использовал JS на стороне клиента для их хранения с использованием document.cookie.

...