Javascript 如何设置samesite=none
我的浏览器页面是从我的服务器加载的,但必须从另一个第三方获取数据 我第一次调用此第三方站点的代码是:Javascript 如何设置samesite=none,javascript,web,Javascript,Web,我的浏览器页面是从我的服务器加载的,但必须从另一个第三方获取数据 我第一次调用此第三方站点的代码是: var Vurl = "https://" + info.server + "/rest/system/session"; var Body = JSON.stringify({name: 'session', value: info.session}); var xhr = new XMLHttpRequest(); xhr.open('POST',
var Vurl = "https://" + info.server + "/rest/system/session";
var Body = JSON.stringify({name: 'session', value: info.session});
var xhr = new XMLHttpRequest();
xhr.open('POST', Vurl, true);
xhr.withCredentials = true;
xhr.send(Body);
xhr.onreadystatechange = function()
{
if(this.readyState == this.HEADERS_RECEIVED)
{
// Get the raw header string
var headers = xhr.getAllResponseHeaders();
}
}
我必须把下面的东西放在某个地方,但我不知道在哪里。谷歌的所有搜索都只是声明它是必需的,而不是如何实现它
cookie('session', info.session, { sameSite: 'none', secure: true });
在使用XMLHttpRequest时,是否可以显示/告诉我设置“samesite”的正确方法,如上图所示
谢谢
更多信息:
显示的调用正在向第三方服务器发送信息。第三方回复具有“会话”cookie,必须替换现有会话cookie。根据我所能找到的-chrome不会从第三方回复更新cookie,除非“withCredentials”设置为true,samesite=none,并且是安全的。我的理解是,所有这些都已设置,然后chrome将在浏览器中更新cookie
我要解决的问题是,在调用之后,我向第三方打开了一个websocket,它希望头中的“会话”cookie与从XMLHttpRequest返回的相同
我的理解正确吗?如何实现
更多添加-我正在尝试实现的Chrome警告
与位于的跨站点资源关联的cookie设置时没有SameSite
属性。如果Chrome的未来版本设置为SameSite=None
和Secure
,则只能提供带有跨站点请求的cookie。您可以在“应用程序>存储>cookies”下的“开发人员工具”中查看cookies,并在和查看更多详细信息它只是一个cookie:
Set-Cookie: flavor=choco; SameSite=None; Secure
在您的示例中:
cookie('SameSite', 'None');
cookie('Secure');
资料来源:
由该提供商适当设置cookie。其他服务器是否阻止您的呼叫?可能与CORS有关,您需要在后端代理调用我在上面添加了更多信息添加了实际的Chrome警告