【前端】angular项目本地开发作为子项目时如何设置跨域CORS
最近碰到个angular项目,它是作为子系统,集成到一个使用了无界微前端框架的父项目中去。用户信息是父项目通过无界传递出来的,所以本地开发的时候,直接通过父项目来访问本地子项目会比较方便一点。不可避免的就碰到了跨域的问题。angular国内用的不是很多,所以没有百度,直接查询官方文档。经过了一番查询,得到了以下解决方法。
·
背景
如题,最近碰到个angular项目,它是作为子系统,集成到一个使用了无界微前端框架的父项目中去。用户信息是父项目通过无界传递出来的,所以本地开发的时候,直接通过父项目来访问本地子项目会比较方便一点。不可避免的就碰到了跨域的问题。angular国内用的不是很多,所以没有百度,直接查询官方文档。经过了一番查询,得到了以下解决方法。
思路
angular在本地开发时,使用的是ng serve来启动一个webpack的devServer服务器,所以只要按以下两个步骤来基本上就能完事儿:
- 找到angular项目是在哪儿配置devServer
- 找到devServer的跨域相关的配置(基本上这种web服务器都会有跨域配置的,要么是设置cors,要么是设置headers)
解决方法
1. 找到angular项目是在哪儿配置devServer
翻阅angular官网可以知道,angular项目的基本配置都是在项目根目录的angular.json文件中。
至于devServer相关配置,官网也写了,可以在如下节点找到
{
"projects":{
"项目名称": {
"architect":{
"serve": {
"options":{
//devServer相关配置
}
}
}
}
}
}
2. 找到devServer的跨域相关的配置
这个方式就比较多了,既然介绍了是webpack的devServer,那直接去找webpack的官方文档即可。
(嗯。。一眼就看到了headers。。大概率就是这么配置的了)
接下来尝试在angular.json中配置headers
(得。。vscode直接提示了。。哪儿用得着翻文档。。)
把允许CORS的请求头配置上去,最终改动的配置如下
{
"projects":{
"项目名称": {
"architect":{
"serve": {
"options":{
"headers": {
"Access-Control-Allow-Origin": "*"
}
}
}
}
}
}
}
重新启动后,在父项目中,可以直接访问本地angular子项目了。
(水了一篇,大佬勿喷)
更多推荐
所有评论(0)