gpt4 book ai didi

javascript - 自动加载无效的 javascript 文件

转载 作者:行者123 更新时间:2023-11-27 23:24:28 25 4
gpt4 key购买 nike

我创建了一个脚本,它根据用户位置自动加载 javascript 文件。像任何其他加载器一样,我创建了一个 <script>元素,将其设置为 src属性并将其添加到 <head> .然后我听 onloadonreadystatechanged等事件,然后检查文件公开的值是否存在。这行得通。

问题是,当我的 ISP 提供了一个无效的交叉源 url“http://fail_on_purpose”时,它会返回 HTML(指示浏览器使用不同的地址重新加载)。我可以在 onload 中捕捉到这个事件,但为时已晚。 HTML 已被注入(inject)到 <script> 内的页面上标签。然后这会导致浏览器(至少是 firefox)发出 SyntaxError。异常。

我所能做的就是从 DOM 中删除有问题的元素。但是,我不知道这是否会在其他浏览器中引起问题,所以我宁愿根本没有错误。

检查有效 javascript 文件然后将其注入(inject)页面的最佳方法是什么?

更新:

发出 HEAD 或 GET 请求以检查文件是否存在/有效,由于浏览器中的“跨源”保护而不起作用。我无法访问 CDN,所以这是一个无法解决的问题。

最佳答案

您可以发送一个HEAD 请求并解析响应 header 以查看页面是否成功返回,即不使用redirection。 , client errorserver error响应代码。任何正确实现的服务器都应该设置正确的响应代码。

理想情况下,如果服务器设置正确,您还可以检查 content-type 以包括 application/javascript

如果匹配,您就知道该脚本存在,因此您可以像现在一样继续加载它。

或者,您已经通过 GET 请求获得了这些 header ,因此您可以通过一个请求完成所有这些操作。但是对于不正确的请求,您将在确定它不正确之前等待所有有效负载,这将占用更多时间并浪费数据传输。如果您希望使用移动用户,则后者值得考虑,您不想浪费这样的数据计划。

关于javascript - 自动加载无效的 javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39281574/

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