(未知):JavaScript 中的脚本错误
如果有人试图违反你设置的规则,你会怎么做?向他发送脚本错误。
但在现实生活中并非如此。😉
但是在 JavaScript 中,如果您尝试违反同源策略,浏览器将向您发送“脚本错误”。
JavaScript 代码中何时发生脚本错误?
当在 onerror 回调中发生的异常违反了浏览器的同源策略时,浏览器会以“脚本错误”进行响应。
同源策略:根据同源策略,浏览器只接受两个不同网页上托管在同一服务器上的脚本。
每个浏览器都有一组可接受的,或者说是必需的“请求标头”。当你在服务器上发出任何请求时,它都应该包含这些必需的请求标头。否则,你将面临脚本错误。
嗯,这是浏览器为了防止脚本泄露到外部域名而故意为之的行为。毕竟没人愿意接受这些不必要的请求 😉 你们呢?
我遇到了 JavaScript 脚本错误,该怎么办?
如果您也遇到同样的问题,请尝试以下可能的解决方案。
1. 设置跨域 HTTP 标头Access-Control-Allow-Origin: *
通过设置Access-Control-Allow-Origin:
为“ * ”,您可以确保可以从任何域访问该资源。如有必要,您还可以将“ * ”替换为您希望访问您域脚本的特定域名。
在不同的环境下,有不同的方法将其设置为*。
- Apache:在提供 JS 文件的文件夹中创建一个 .htaccess 文件:
Header add Access-Control-Allow-Origin "*"
- Ngnix:添加 add_header 指令如下:
位置 ~ ^/assets/ { 添加标头访问控制允许来源*; }
- HA 代理:添加此资产:
rspadd Access-Control-Allow-Origin:\ *
2. 设置 crossorigin=”anonymous”
对于 HTML 脚本中设置了 Access-Control-Allow-Origin 的每个脚本,请设置crossorigin="anonymous"
<script src="http://another-domain.com/app.js" crossorigin="anonymous"></script>
此代码告诉您的浏览器匿名获取目标文件,避免在浏览器请求时传输任何用户识别信息,如 HTTP 凭据或 cookie。
如果您在 JavaScript 代码中遇到任何脚本错误,希望本文能够有所帮助。
相关文章:
文章来源:https://dev.to/lambdatest/unknown-script-error-in-javascript-58p7