Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
392 views
in Technique[技术] by (71.8m points)

接口数据传过去就是账号不存在,我传给后台的数据是空的。

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都是账号不存在,然后后端跟我说传的数据是空的。我这边接口写的是有问题吗?
image.png
image.png

image.png
image.png
image.png
qs格式
image.png
JSON格式
image.png


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

proxy配置

proxy : {
    '/api' : { //PS:写错了不能带有正则
        target: "http://192.168.3.155:8877", // 代理接口 (注意只要域名就够了)
        changeOrigin: true, //是否跨域
        pathRewrite: {
           '^/api': '/api' //代理路径
        }
    }
}

ps:修改数据处理

1.表单格式

axios.defaults.headers['Content-Type'] = 'appliacation/x-www-form-urlencoded';

这样的请求头需要发送 account=18326173286&password=123 这样的数据格式

//修改代码
axios.defaults.transformRequest = function (data) {
    data = qs.stringify(data);
    return data;
};
  1. json格式
axios.defaults.headers['Content-Type'] = 'appliacation/json';

这样的请求头需要发送{"account":"18326173286","password":"123"} 这样的数据格式

//修改代码
axios.defaults.transformRequest = function (data) {
    data = JSON.stringify(data);
    return data;
};

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...