gpt4 book ai didi

javascript - 脚本的动态加载显示同一 JS 文件的不同行为

转载 作者:行者123 更新时间:2023-12-03 12:18:23 24 4
gpt4 key购买 nike

在我们的网站上加载 JS SDK 时,我尝试了几种不同的方法。我注意到代码段 1 导致 CORS 错误,而代码段 2 在同一页面 上加载相同的脚本 没有任何问题。

片段 1(使用 document.body.appendChild,抛出 CORS 异常)

 const url = 'https://www.example.com/sdk.js';
const scriptTag = document.createElement('script');
scriptTag.setAttribute('crossorigin', 'anonymous');
scriptTag.setAttribute('src', url);
document.body.appendChild(scriptTag);

片段 2(使用 parentNode.insertBefore,无 CORS 异常)

 const element = document.getElementsByTagName('script')[0];
const scriptTag = document.createElement('script');

scriptTag.async = !0;
scriptTag.crossorigin = 'anonymous';
scriptTag.src = 'https://www.example.com/sdk.js';
element.parentNode.insertBefore(scriptTag, element);

我试图找出每种情况下行为不同的原因,但找不到任何原因。

有人能指出我为什么会看到这种行为吗?

最佳答案

我看到运行您的代码的唯一区别是@Pointy 在评论中指出的点,第一个脚本生成:

<script crossorigin="anonymous" src="https://www.example.com/sdk.js"></script>

第二个:

<script async="" src="https://www.example.com/sdk.js"></script>

在我的控制台上运行,所以 crossorigin 可能对 cors 错误负责。 (同样的事情发生在控制台上,顺便说一句)

关于javascript - 脚本的动态加载显示同一 JS 文件的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60553195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com