node中跨域代理 proxyTable的原理是什么?

1.node中跨域代理 proxyTable的原理是什么?

2.我在浏览器和服务端都没有设置CORS的情况下,只要设置proxytable就可以跨域了,这样是不是就违背了同源策略的初衷?

ps: 希望见到比较有水准的解释

阅读 16.8k
2 个回答

跨域是浏览器禁止的,服务端并不禁止跨域
所以浏览器可以发给自己的服务端然后,由自己的服务端再转发给要跨域的服务端,做一层代理
vue-cliproxyTable用的是http-proxy-middleware中间件
create-react-app用的是webpack-dev-server内部也是用的http-proxy-middleware
http-proxy-middleware内部用的http-proxy

你说的应该是vue-cli生成的配置文件上的proxytable
1.事实上在你运行的时候,会配置启动一个node服务,这个服务的作用1是静态文件服务,让你可以访问到html/js等文件包括监听文件变动等,2是启动一个http代理,你js发送的请求会请求到这个服务A,由服务A代理到服务B,而服务A和静态文件服务器是同源的,并不影响同源策略。
2.浏览器是没有必要设置CORS的,服务器设置CORS就是为了告知浏览器允许访问我的源,不是跟我同源的,要在浏览器接受到响应后抛出错误。

推荐问题
宣传栏