axios的基本使用
axios的基本使用
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
最简单的axios写法如下
1 | axios.get('url') |
这样我们就可以完成一个简单的get请求,但是在大多数情况下,我们总是会遇到跨域相关的问题。
什么是跨域
跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。
最常见的就是当域名不同时(如下)
1 | www.abc.com 访问 www.def.com |
有的网站会在服务端写好,这样我们请求接口时就不会遇到跨域的问题,但是大多数并不会,也就是为什么在看相关教程时看着老师可以直接请求数据,但是自己照着写时却突然蹦出来了跨域的问题(老师自己写的接口,在服务端就解决了跨域的问题)。
如何解决跨域问题
这里分为vue cli2与 vue cli3/4的解决方法,因为配置文件发生了相应的改变所以有一些小的变动,网上大多数的解决方法都是cli2放在cli3/4是不可行的。
STEP1
修改/创建配置文件
vue cli2
将config文件夹下的index.js打开,写入代码如下
注意这里不要改成es6语法,具体为啥我还不是特别清楚,官方文档是这样写的,我改成es6是没法正常运行的。。。详情见:Vue官方文档:配置参考
注意devServe,也就是说只能在开发环境下实现跨域,打包后在生产环境下无法实现跨域
为什么这样写可以实现跨域?上面的链接中devServer.proxy有详细说到~
1 | module.exports = { |
vue cli3/4
直接在根目录下修改或者创建vue.config.js(名字是固定的!官方就是这么规定的,其他名字不会生效),写入的代码同上
STEP2
创建一个js文件名字随意,大致代码如下
axios更多的实例请求配置详见:Axios中文说明
1 | import axios from "axios"; |
STEP3
在main.js中导入STEP2的文件
1 | import { request } from './api/request' |
结束
到这里在开发环境中的跨域请求就解决了,要在生产环境中使用还需要一点其他的配置,以后再写。小白个人的学习总结,可能会存在一些技术知识上的认知错误,欢迎指出,大佬轻喷、轻喷~
- Title: axios的基本使用
- Author: 九號
- Created at : 2020-01-12 10:00:00
- Updated at : 2024-08-31 16:57:32
- Link: https://jhao.me/posts/55319/
- License: This work is licensed under CC BY-NC-SA 4.0.