https://github.com/Coxhuang/vue-axios-demo
npm install --save axios vue-axios
import axios from 'axios'
import VueAxios from 'vue-axios'
Vue.use(VueAxios,axios);
axios.defaults.baseURL = "http://127.0.0.1:8000/"; // 后端接口的地址
前端向后端发送一个get请求
点击
本文使用的后端框架是Python的Django框架, 需要注意的是,后端接口需要配置跨域问题,如果不配置跨域,会出现以下情况:
后端返回的请求状态码仍然是200, 但是前段就是拿不到数据
Django解决跨域如下:
...
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware', # 跨域,必须放在这个位置,不能放在'django.middleware.common.CommonMiddleware'后面
'django.middleware.common.CommonMiddleware',
...
]
...
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = (
'*',
)
CORS_ALLOW_METHODS = (
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
# 'VIEW',
)
CORS_ALLOW_HEADERS = (
'XMLHttpRequest',
'X_FILENAME',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'User-agent',
'x-csrftoken',
'x-requested-with',
'token',
)
...
点击
POST点击
新建 src/utils/axios.js
import axios from 'axios' // 导入node_modules里的axios
axios.defaults.baseURL = "http://127.0.0.1:8000/"; // 后端接口 ip:port
export default axios // 导出axios
新建 src/api/api.js和src/api/index.js
import api_all from './api'
export default {
api_all
}
import axios from '@/utils/axios' // 导入axios
const api_all = {
// 获取所有用户列表
get_user_list(token) {
return axios({
url: '/api/user/list-user/',
method: 'GET',
// data: {
// token: token
// },
})
}
};
export default api_all // 导出 api_all
...
import axios from "./api/"; // 导入axios
Vue.prototype.$api = axios; // 挂载到原型链上, 在vue组件里面可以通过this拿到
// 使用统一化管理,将以下代码注释掉
// import axios from 'axios'
// import VueAxios from 'vue-axios'
// Vue.use(VueAxios,axios);
// axios.defaults.baseURL = "http://127.0.0.1:8000/";
...
点击
POST点击
api点击
...