http
import axios from 'axios'; // 引入axios
import qs from 'qs'; // 第三方库
/* 根据环境变量区分接口默认地址 */
switch (process.env.NODE_ENV) {
case "production": // 生产地址
axios.defaults.baseURL = "";
break;
case "test": // 测试环境
axios.defaults.baseURL = "";
break;
default: // 默认走本地开发环境
axios.defaults.baseURL = "http://192.168.3.155:8877/api"
}
/* 设置超时时间和跨域是否允许携带凭证 */
// axios.defaults.timeout = 10000;
axios.defaults.withCredentials = true;
/* 设置请求传递数据的格式 */
axios.defaults.headers['Content-Type'] = 'appliacation/x-www-form-urlencoded';
axios.defaults.transformRequest = function (data) {
data = qs.stringify(data);
// data = JSON.stringify(data);
return data;
};
/* 设置请求拦截器 */
// TOKEN校验(JWT)
axios.interceptors.request.use(config => {
// 携带token
let token = localStorage.getItem('token');
token && (config.headers.Authorization = token);
return config;
}, error => {
return Promise.reject(error);
});
/* 响应拦截器 */
axios.interceptors.response.use(response => {
return response.data;
}, error => {
let { response } = error;
if (response) {
// => 服务器返回了结果 500 服务器出现未知错误,一般不处理
switch (response.status) {
case 401: // => 权限
break;
case 403: // => (一般是TOKEN过期,session过期也有可能走这个)服务器已经理解请求,但是拒绝执行它
break;
case 404: // => 找不到页面
break;
}
} else {
if (!window.navigator.onLine) {
return;
}
return Promise.reject(error);
}
});
export default axios;
接口
import http from '../util/http';
function login(options) {
return http.post('/prjUser/login', options)
}
function tree(options) {
return http.get('/sysPermission/tree', options)
}
export default {
login,
tree
}
登录按钮,我每次登录不管改成json还是qs都是账号不存在,然后后端跟我说传的数据是空的。我这边接口写的是有问题吗?
qs格式
JSON格式
proxy配置
ps:修改数据处理
1.表单格式
这样的请求头需要发送 account=18326173286&password=123 这样的数据格式
这样的请求头需要发送{"account":"18326173286","password":"123"} 这样的数据格式