我目前正在 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();