axios中payload

4 篇文章 0 订阅

最近, 在接手某项目中遇到一个问题,我的

return axios({
    url: '/df/rpay/income/input/insertAgencyIncomeInput.do',
    headers: {
        'content-type': 'application/json;charset=UTF-8'
      },
    method: 'post',
    data,
})

在这里插入图片描述
发现是因为在拦截器中,数据被强制转换为form-data 格式。

import axios from 'axios'
import qs from 'qs'
// 创建 axios 实例
const service = axios.create({
    baseURL: '假装有地址', 
    timeout: 600000 // 请求超时时间
})
// request interceptor
service.interceptors.request.use(config => {
    // 转换成form-data类型
    config.transformRequest =  [function(data) { 
        return qs.stringify(data)
    }]
    config.headers['token'] = '假装有用户信息'
    return config
}, function(err) {
    // store.state.isLoading = false
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在React项目进行二次封装axios可以提高代码的复用性和可维护性。下面是一个简单的示例来说明如何进行react二次封装axios: 1. 首先,在你的项目文件导入axios库。你可以使用以下命令安装axios库: ```javascript import axios from 'axios'; ``` 2. 创建一个封装了axios请求的文件,例如`Http.js`。在这个文件,你可以定义一些全局的请求配置,例如设置请求头、设置请求超时时间等。同时,你还可以定义一些通用的请求方法,例如GET、POST等请求方法,并对这些方法进行二次封装。这样可以在其他地方直接使用封装后的方法进行请求。以下是一个示例: ```javascript import axios from 'axios'; const Http = axios.create({ baseURL: 'http://api.example.com', // 设置基本的请求地址 timeout: 5000, // 设置请求超时时间 headers: { 'Content-Type': 'application/json', // 设置请求头 }, }); // 封装GET请求方法 export const get = (url, params) => { return Http.get(url, { params }); }; // 封装POST请求方法 export const post = (url, data) => { return Http.post(url, data); }; export default Http; ``` 3. 在实际使用,你可以在需要发送请求的地方引入封装好的方法,并进行请求操作。以下是一个示例: ```javascript import Http from '@/axios'; import { call } from 'redux-saga/effects'; export function* asyncCheckLogin({payload}) { const res = yield call(Http.reqCheckLogin, payload.values); if(res && res.code === '0'){ // 跳转到首页 payload.history.replace('/'); }else { message.warn("你错了"); } } ``` 通过上述步骤,你可以在React项目进行二次封装axios,提高代码的复用性和可维护性。你可以在封装的文件设置全局的请求配置,并定义通用的请求方法,然后在其他地方引入并使用这些方法来发送请求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值