首页 > 解决方案 > 是否可以将 cookie 附加到脚本标签?

问题描述

我通过动态添加脚本标签来获取一个脚本。发回的脚本内容取决于server获取脚本的 GET 请求中某个 cookie(例如 )的值。

我知道对 a 的 GET 请求<script>将自动携带浏览器中设置的所有(允许的)cookie。我可以在代码中向这个请求添加一些我自己的 cookie 值吗?

我使用的代码与此类似:

const script = document.createElement("script");
script.src = 'https://example.com/script';
script.onload = () => console.log("Loaded!");
document.body.appendChild(script);

标签: javascripthtmlcookies

解决方案


如果您在 .src 语句之前更改 cookie,它将被发送到服务器 IIF 服务器与加载页面的位置相同。

无论您可以从 domainB 加载脚本,您都不能在 domainA 上设置发送到 domainB 的 cookie

注意:正确的顺序是 - 总是在设置任何东西的 src 之前设置负载处理程序;服务器可以在读取下一条语句之前用文件响应。

此外,我们通常将脚本附加到头部。这也将在页面加载后起作用。

// change cookie here
const script = document.createElement("script");
script.onload = () => console.log("Loaded!");
// or change cookie here
script.src = 'https://example.com/script';
document.querySelector("head").appendChild(script); 

推荐阅读