我的浏览器页面是从服务器加载的,但必须从另一个第三方获取数据。
我第一次拨打此第三方网站的代码是:
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();
}
}
我必须将以下内容放置在某个地方,但我不知道在哪里。 google中的所有搜索都只说明是必需的,而不是如何实现的。
cookie('session', info.session, { sameSite: 'none', secure: true });
如上所述,在使用XMLHttpRequest时,您能告诉我/告诉我设置“相同站点”的正确方法吗。
谢谢
更多信息:
显示的呼叫正在向第三方服务器发送信息。第三方答复具有一个“会话” cookie,该cookie必须替换现有的会话cookie。根据我的发现,除非将“ withCredentials”设置为true,samesite = none和安全,否则chrome不会通过第三方回复更新cookie。我的理解是所有这些都已设置,然后chrome将在浏览器中更新cookie。
我要解决的问题是,在调用之后,我打开了一个向第三方的websocket,它期望标头中的“会话” cookie与XMLHttpRequest返回的相同。
我的理解正确吗?如何实施?
更多新增功能-我正在尝试实施Chrome警告
设置了与http://hinkle1.sipworxx.com/处的跨站点资源关联的cookie,但未设置SameSite
属性。如果将来的Chrome浏览器版本设置为SameSite=None
和Secure
,则仅会发送带有跨站点请求的cookie。您可以在开发人员工具的“应用程序”>“存储”>“ Cookies”下查看Cookie,并在https://www.chromestatus.com/feature/5088147346030592和https://www.chromestatus.com/feature/5633521622188032
答案 0 :(得分:0)
它只是一个cookie:
Set-Cookie: flavor=choco; SameSite=None; Secure
在您的示例中:
cookie('SameSite', 'None');
cookie('Secure');
来源: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite