1.node中跨域代理 proxyTable的原理是什么?
2.我在浏览器和服务端都没有设置CORS的情况下,只要设置proxytable就可以跨域了,这样是不是就违背了同源策略的初衷?
ps: 希望见到比较有水准的解释
1.node中跨域代理 proxyTable的原理是什么?
2.我在浏览器和服务端都没有设置CORS的情况下,只要设置proxytable就可以跨域了,这样是不是就违背了同源策略的初衷?
ps: 希望见到比较有水准的解释
你说的应该是vue-cli
生成的配置文件上的proxytable
吧
1.事实上在你运行的时候,会配置启动一个node
服务,这个服务的作用1是静态文件服务,让你可以访问到html/js
等文件包括监听文件变动等,2是启动一个http代理,你js发送的请求会请求到这个服务A,由服务A代理到服务B,而服务A和静态文件服务器是同源的,并不影响同源策略。
2.浏览器是没有必要设置CORS
的,服务器设置CORS
就是为了告知浏览器允许访问我的源,不是跟我同源的,要在浏览器接受到响应后抛出错误。
6 回答3.1k 阅读✓ 已解决
6 回答2.5k 阅读
5 回答6.5k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
2 回答1.6k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
跨域是浏览器禁止的,服务端并不禁止跨域
所以浏览器可以发给自己的服务端然后,由自己的服务端再转发给要跨域的服务端,做一层代理
vue-cli
的proxyTable
用的是http-proxy-middleware
中间件create-react-app
用的是webpack-dev-server
内部也是用的http-proxy-middleware
http-proxy-middleware
内部用的http-proxy