如果请求的域名,端口号不一致,浏览器就会产生跨域。客户端请求已经发送到服务器,服务器也将数据返回到了浏览器,但是因为客户端和服务器端的域名或者端口号不一致,浏览器就会拦截,这个时候,后端可以配置请求头允许客户端访问,前端也可以配置代理服务器去解决跨域,以下就是前端解决跨域的方法。
(补充:如果客户端是http://localhost:5000,那么代理服务器也是http://localhost:5000,但是因为服务器与服务器之间不存在跨域问题,所以配置了代理服务器,就能解决跨域的问题)
方法一
只能配置一个代理服务器,也可以理解只能请求一个服务器,如果想请求多个服务器的话,就行不通了。
请求实例:http://localhost:5000/xx/xx
方法二
可以配置多个代理服务器
changeOrigin:代理服务器是否对请求的服务器说谎,如果为true,就是说谎,比如代理服务器的域名和端口号是http://localhost:5000,请求的后端服务器是http://xxx:5000,那么后端服务器收到的代理服务器的路径也是http://xxx:5000。如果为false,则不说谎,比如代理服务器的域名和端口号是http://localhost:5000,那么后端服务器收到的代理服务器的路径也是http://localhost:5000。为true的目的是,当后端服务器做了请求限制,比如只能给指定的请求响应,那么代理服务器也能正常访问
pathRewrite:对请求路径做正则。比如一个请求是http://localhost:5000/index,代理服务器的开头请求路径是'/api',如果不配置pathRewrite的话,那么请求就是http://localhost:5000/api/index,但是服务器的请求路径是index,不是api/index,那么就会导致404。如果配置了pathRewrite:{‘^/api’:" '}(意思是如果路径中有api这个字符串,就会被替换成‘ ’),那么最终的请求就是http://localhost:5000/index