- 为什么使用 axios:
发送ajax请求,解决跨域问题
- 什么是跨域:
发送ajax请求的时候要求同源,什么是同源,就是协议名、主机名、端口名一致。
- 怎么解决跨域
开启一个代理服务器,代理服务器与我么所处的位置相同,就是协议名,主机名,端口号一致。我们像代理服务器发送ajax请求,代理服务器收到请求后会向目标服务器发送http请求,http请求是没有跨域问题的,当代理服务器获取到http请求的返回值后,再将数据转发给我们得服务器,这样就解决的服务器的跨域问题。
- 安装axios npm i axios
- 配置代理,可以配置多个
其中 /api 是发送请求时的请求头,用于表明向那个服务器发送请求
target 是我们要转发的服务器的地址,只配置到端口即可
pathRewrite:非常重要,意思就是代理服务器转发的时候将请求头转换为空字符串,如果不加这个配置,发送http请求的时候会将 /api一起发送给目标服务器,会导致404。
ws 用于支持websocked,如果不配置,默认是true
changeOrigin 用于控制请求头中的host值,如果不配置默认是true。配置为true以后,当目标服务器收到请求以后,会认为请求的地址为http://localhost:5000,如果配置为false,则目标服务器会得到我们请求服务器的地址 http://locahost:8080,建议开启,防止目标服务器开启访问限制的时候我们就不能访问的问题。
如果配置多个,就在下面再配置一个,如demo。
- 使用axios
首先引入axios,发送请求的时候,http://localhost:8080 是我们本地服务器的地址,api是我们的请求头,发送给代理服务器以后,代理服务器就会将请求转发,转发的地址为
http://localhost:5000/students,会自动帮我们将api转换为空字符串。
- 更多配置请参考官网
配置参考 | Vue CLI
Vue axios的使用
于 2022-05-17 10:29:32 首次发布