问题描述
某小白是一个只略懂基础三件套和 Angular 框架的前端初学者,这天,小白开始尝试和后端服务器对接,控制台却打印出了如下错误信息:
小白看得一头雾水,ta 赶忙搜索与has been blocked by CORS policy: No 'Access-Control-Allow-Origin'
相关的解释,这才逐渐明白过来。原来,浏览器的安全策略中存在一个同源策略,这个策略要求浏览器的 ajax 只能访问跟它的 HTML 页面同源(相同域名或IP)的资源,而小白的本地测试环境显然与后端服务器不同源,访问属于跨域访问,因此被拒绝。
跨域问题的解决方案有多种,但小白主动把锅揽到了自己身上,选择在前端解决该问题。
解决方案
反向代理——设置一个代理服务器(不需要真实存在),使该代理和后端服务器同源,客户端的请求由该代理转发,这样就不存在跨域了。
在 Angular 下反向代理的配置流程如下:
- 在项目根目录下创建
proxy.config.json
,内容如下:
{
"/ap