当前位置:首页 > 技术分享 > 前端开发 > 正文内容

ant design pro 用 request 封装 axios 后 get 方法请求接口设置了headers[‘Content-Type‘]不起作用的问题

admin2年前 (2022-09-27)前端开发2563

axios封装请求方法中设置了请求头,request headers中没有出现

service.interceptors.request.use(
    config => {
        config.data = JSON.stringify(config.data);
        config.headers['Authorization'] = getToken();
        config.headers['Content-Type'] = "application/json;charset=utf-8";
        
        return config;
    },
    error => {
        return Promise.reject();
    }
);

原因:npm下axios的源码中,当未设置requestData的时候会删掉Content-Type的设置

// Add headers to the request
if ('setRequestHeader' in request) {
    utils.forEach(requestHeaders, function setRequestHeader(val, key) {
    if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {
      // Remove Content-Type if data is undefined
      delete requestHeaders[key];
    } else {
      // Otherwise add header to the request
      request.setRequestHeader(key, val);
    }
  });
}

解决方法:request.js

在request 拦截的地方加入下面代码

// 随便写个值 绕过if判段
if (config.method === 'get' || !config.data) {
  config.data = {}
}



版权声明:本文由沐萱草的笔记发布,如需转载请注明出处。

本文链接:https://mxcst.com/?id=7

“ant design pro 用 request 封装 axios 后 get 方法请求接口设置了headers[‘Content-Type‘]不起作用的问题” 的相关文章

nodejs更改全局依赖安装路径

nodejs更改全局依赖安装路径

更改全局安装路径: npm config set prefix "你设置的文件夹路径" 更改缓存路径: npm config set cache "你设置的文件夹路径"...

Ant design Vue 实现动态表单及验证

Ant design Vue 实现动态表单及验证

<template> <a-form-model       ref="dynamicValidateForm"       :mode...

modules[moduleId] is undefined error

modules[moduleId] is undefined error

modules[moduleId] is undefined error应该是webpack的一个bug, 具体修复可以修改配置,使用:optimization: { concatenateModules: false, providedExports:&nb...

Angular国际化,懒加载,动态添加Base

Angular国际化,懒加载,动态添加Base

Angular做了国际化之后会生成不同语言的目录,加上在js文件是上传到后台项目中,通过域名加载js,js文件路径比较深,但js的加载是默认从根目录开始。所以懒加载模块的时候总是报404错。经过查阅资料发现可以在模块加载前动态添加一个<base> tag,模块加载完成后再移除。impor...