假设我们要把http://localhost:8081/allin/policy/getProductInfo 中的域名换成 www.test.com 相当于把请求换成 http://www.test.com/allin/policy/getProductInfo
devServer: { proxy: { '/allin': { //要访问的跨域的域名 target: 'http://www.test.com', ws: true, // 是否启用websockets //开启代理:在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样客户端端和服务端进行数据的交互就不会有跨域问题 changOrigin: true, } } }
相当于遇见/allin才做代理,则会把默认域名http://localhost:8081地址改成 target 对应的http://www.test.com地址,但是在浏览器的F12下,Network->Headers中看到还是http://localhost:8081/allin/policy/getProductInfo, 但是真正的请求的地址则是http://www.test.com/allin/policy/getProductInfo
devServer: { proxy: { '/api': { //要访问的跨域的域名 target: 'http://www.test.com', ws: true, changOrigin: true, pathRewrite: { '^/api': '' } } } }
相当于遇见/api才做代理,但真实的请求中没有/api,所以在pathRewrite中把’/api’去掉, 这样既有了标识, 又能在请求接口中把/api去掉
devServer: { proxy: { '/allin': { //要访问的跨域的api的域名 target: 'http://www.test.com', ws: true, changOrigin: true, pathRewrite: { '^/allin': '/allin/policy' } } } }
相当于遇见/allin则替换成/allin/policy,注意/policy后边没有/,这样拼接成功才会是http://www.test.com/allin/policy/getProductInfo
devServer: { proxy: { '/allin': { //要访问的跨域的api的域名 target: 'http://www.test.com/allin/policy', ws: true, changOrigin: true, pathRewrite: { '^/allin': '/' //必须这样写 } } } }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/199384.html原文链接:https://javaforall.net
