Браузер не отправляет куки через AJAX, но в остальном он идеален - PullRequest
0 голосов
/ 12 июня 2018

В настоящее время у меня установлены файлы cookie в домене localhost - я назову его example.com (конечно, это не example.com).

Мой API находится вexample.com:8888/api/myApi

Когда я запрашиваю вышеуказанный API от example.com:8080 через ajax

то есть - я иду на example.com:8080 в моем хромебраузер, и у меня есть JS-код, который отправляет запрос на example.com:8888/api/myApi

мой браузер не отправляет куки.Я вижу это на вкладке сети в chrome dev-tools. Я не вижу ни одного файла cookie в разделе заголовков запросов

С другой стороны, если я открою тот же URL в другой вкладке, никаких других изменений не будет, все куки отправляютсяи я получаю идеальный ответ.

Я не думаю, что это может быть проблема перекрестного происхождения, так как я уже получаю в ответ следующие заголовки, связанные с исходным ядром -

Access-Control-Allow-Headers: *

Access-Control-Allow-Methods: GET,POST,OPTIONS

Access-Control-Allow-Origin: *

Дополнительная информация-

Мой код Ajax:

var httpRequest = new XMLHttpRequest();

            httpRequest.onreadystatechange = function () {
                var data;
                if (httpRequest.readyState === 4) {
                    if (httpRequest.status === 200) {
                        if (httpRequest.response) {
                            data = httpRequest.response;
                        } else if (httpRequest.responseType && (httpRequest.responseType === '' || httpRequest.responseType === 'text')) {
                            data = httpRequest.responseText;
                        }
                        if (args.dataType && args.dataType === 'json' && typeof data === 'string') {
                            data = JSON.parse(data);
                        }
                        args.done(data, xdr);
                    } else {
                        args.fail(httpRequest);
                    }
                    args.always(httpRequest, data);
                }
            };
            httpRequest.open(args.type, fullUrl);
            httpRequest.setRequestHeader('Content-Type', args.contentType);
            httpRequest.responseType = args.dataType;
            httpRequest.send();

Для проверки - Скриншот моей проблемы - Chrome Devtools Screenshot

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