如何设置samesite = none

时间:2020-05-16 01:07:47

标签: 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', 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=NoneSecure,则仅会发送带有跨站点请求的cookie。您可以在开发人员工具的“应用程序”>“存储”>“ Cookies”下查看Cookie,并在https://www.chromestatus.com/feature/5088147346030592https://www.chromestatus.com/feature/5633521622188032

上查看更多详细信息。

1 个答案:

答案 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