在Angular中,Chrome浏览器默认情况下不允许加载本地资源,这是为了防止跨站点脚本攻击(XSS)的安全措施。但在开发过程中,我们可能需要加载本地资源,可以通过以下几种方法解决:
angular.json
文件中,找到serve
配置项,添加proxyConfig
属性,并创建一个名为proxy.conf.json
的配置文件。angular.json配置:
{
"projects": {
"your-project-name": {
"architect": {
"serve": {
"options": {
"proxyConfig": "proxy.conf.json"
}
}
}
}
}
}
proxy.conf.json配置:
{
"/api": {
"target": "http://localhost:3000",
"secure": false
},
"/assets": {
"target": "http://localhost:4200",
"secure": false
}
}
上述配置将会将所有以/api
开头的请求代理到http://localhost:3000
,将所有以/assets
开头的请求代理到http://localhost:4200
。
首先,安装ngrok并启动本地服务器(例如:ng serve
)。
然后,在命令行中运行ngrok命令:
ngrok http 4200
ngrok将会为你生成一个公共的URL,可以通过该URL访问本地服务器。
启动参数示例:
chrome.exe --allow-file-access-from-files
禁用安全策略示例: 在Chrome快捷方式的目标属性中添加以下内容:
--disable-web-security --user-data-dir="C:/ChromeDevSession"
请注意,禁用安全策略会降低浏览器的安全性,建议只在开发环境中使用。
以上是几种解决“Angular Chrome 不允许加载本地资源”的方法,你可以根据自己的需求选择其中一种来解决该问题。