Visual Studio 2017中前后端同端口引发跨域问题及端口修改方法
嘿,这个跨域问题我日常开发中碰到过好多次,改部署端口其实很容易,分后端Web API和前端AngularJS两部分来操作就好:
修改后端Web API项目的部署端口
根据你的Web API项目类型(.NET Core/.NET Framework),操作略有不同:
- 如果是.NET Core/.NET 5+的API项目:
找到项目根目录下Properties文件夹里的launchSettings.json文件,打开后找到applicationUrl字段,把默认的端口替换成新的,比如把原来的http://localhost:5000改成http://localhost:5001,保存后重启项目就生效了。 - 如果是传统.NET Framework Web API项目:
右键点击项目→选择「属性」→切换到「Web」标签页,在「服务器」区域的「项目URL」里修改端口号,比如把http://localhost:1234改成http://localhost:1235,点击「保存」后重启项目即可。
修改前端AngularJS项目的部署端口
要看你用什么方式启动前端项目:
- 如果用Angular CLI启动:
在命令行启动时直接指定端口,比如原来的ng serve改成ng serve --port 4201(默认端口是4200,换个和后端不一样的就行)。 - 如果是在VS2017里用IIS Express托管静态文件:
同样找到前端项目的launchSettings.json文件,修改applicationUrl的端口,比如改成http://localhost:4201,保存后重启项目。 - 最后别忘了更新前端的API请求地址:把前端代码里调用后端API的base URL改成后端新的端口,比如原来的
http://localhost:5000/api/users要改成http://localhost:5001/api/users。
另外提一句:如果改完端口后还是碰到跨域问题,你可以在后端Web API里配置CORS策略,允许前端的新端口访问,但这一步是额外的,先把端口分开就能解决大部分基础的跨域报错啦。
内容的提问来源于stack exchange,提问作者carbonero1891
相关产品推荐
相关产品推荐

