跨域与webpack的代理理解
今天和大佬交流了一下豁然开朗
首先要理解什么是跨域,以及什么造成了跨域
跨域是因为浏览器同源策略引起的,非同源的请求会导致接口的响应被浏览器阻止了,所以产生了跨域。
这里有几个注意点
1. 浏览器引起的,因为是浏览器阻止的这个操作才引起跨域。很多后端不了解跨域也是因为这个,他们喜欢说“我用postman请求没问题啊”,因为他们没了解引起跨域的是什么,而且这也衍生了代理重要的原理,因为服务器和服务器之间的请求是不会跨域的,这个之后讲。
2.非同源,同源是指 同域名 同端口 同协议,只要这三个有一个不同就是非同源,就会引起跨域
代理是怎么解决跨域的
刚刚说了,因为服务器和服务器之间的请求是不会跨域的,所以我们日常的项目通过配置webpack的webpack-dev-server插件在node环境生成了一个本地服务器,我们原本浏览器请求的接口,代理请求到了本地的服务器,本地服务器又去请求非同源的服务器,拿到响应数据后再响应给浏览器,就相当于是我们浏览器请求了本地服务器,响应也由本地服务器发出,所以就不会造成跨域了。
前端远比想象中的还要复杂,需要学习的还有很多,脚踏实地记录好遇到的麻烦与经验,三省吾身,才能慢慢积累经验。