浏览器不通过AJAX发送cookie,但它是完美的

时间:2018-06-12 07:01:08

标签: javascript ajax cookies

我目前正在 localhost 域下设置Cookie - 我将其称为example.com(当然,它不是example.com。< / p>

我的api在example.com:8888/api/myApi

当我通过 ajax

example.com:8080请求上述API时

- 我在Chrome浏览器中转到example.com:8080,我有一个js代码向example.com:8888/api/myApi发送请求

我的浏览器不发送任何cookie。我在Chrome开发工具的网络标签中看到了这一点,我在“请求标题”部分下看不到任何Cookie

另一方面,如果我在其他标签中打开相同的网址,没有其他更改,则会发送所有Cookie,我会得到完美的回复。

我不认为它可能是跨源问题,因为我已经在响应中获得了以下与核心相关的标题 -

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

0 个答案:

没有答案