axios的get请求无法设置Content-Type
最近在与后端的项目对接中,接口工具使用了axios
这个东西。怎么说那 ,反正有很多坑,在后端的请求中要设置GET
请求中要设置header
中的Content-Type
为application/json; charset=utf-8
我目视了两秒钟很简单的嘛
var $http = axios.create({
baseURL: url,
headers: {
'Content-Type': 'application/json; charset=utf-8'
}
...
})
洒洒水啦 ,是不是很容易
然后。。然后。。我艹what fuck,一看请求中header中没得这个玩意儿,但是除了Content-Type都是可以设置的
此时此刻一万句mmp要将,百度一大推也都没啥用
然后本人就去读了一哈源码,npm包中的源码 axios/lib/xhr.js,写了什么,我艹 他写了什么
118------129行
// 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);
}
});
}
然后看这个if
判段, 哔了狗了
然后就有那么几个解决办法,下面我写一写哈
- 方法一
//修改这段代码
// 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);
//}
});
}
好了,行了行了,现在可以了
- 方法二
我们不能随随便便改人家的npm
包啊,万一下次别人安装的时候那不是又要去改,咋办呢,看下面这个方法
var $http
// 添加一个新的axios实例
$http = axios.create({
baseURL: url,
headers: {
'Content-Type': 'application/json; charset=utf-8'
}
})
// 添加请求拦截器
$http.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
// 随便写个值 绕过if判段
if (config.method == 'get') {
config.data = true
}
config.headers['H-TOKEN'] = '111'
return config;
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error);
});
现在哥哥告诉你,随便在get请求中设置header那还不是简简单单的事情
axios
这么做的原因, 是因为GET
请求本身是不需要Content-type
,塔属于简单请求
原文作者:echone_wenqian
原文地址:https://blog.csdn.net/qq_24729895/article/details/80367460
axios的get请求无法设置Content-Type的更多相关文章
- Jmeter发送post请求报错Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported
常识普及: Content-type,在Request Headers里面,告诉服务器,我们发送的请求信息格式,在JMeter中,信息头存储在信息头管理器中,所以在做接口测试的时候,我们维护Conte ...
- Ajax跨域请求,设置content
在使用Ajax跨域请求时,如果设置Header的ContentType为application/json,会分两次发送请求.第 一次先发送Method为OPTIONS的请求到服务器,这个请求会询问服务 ...
- Jsoup问题---获取http协议请求失败 org.jsoup.UnsupportedMimeTypeException: Unhandled content type. Must be text/*, application/xml, or application/xhtml+xml.
Jsoup问题---获取http协议请求失败 1.问题:用Jsoup在获取一些网站的数据时,起初获取很顺利,但是在访问某浪的数据是Jsoup报错,应该是请求头里面的请求类型(ContextType)不 ...
- Jsoup获取部分页面数据失败 org.jsoup.UnsupportedMimeTypeException: Unhandled content type. Must be text/*, application/xml, or application/xhtml+xml.
用Jsoup在获取一些网站的数据时,起初获取很顺利,但是在访问某浪的数据是Jsoup报错,应该是请求头里面的请求类型(ContextType)不符合要求. 请求代码如下: private static ...
- [Android]解决3gwap联网失败:联网请求在设置代理与直连两种方式的切换
[Android]解决3gwap联网失败:联网请求在设置代理与直连两种方式的切换 问题现象: 碰到一个问题,UI交互表现为:联通号码在3gwap网络环境下资源一直无法下载成功. 查看Log日志,打印出 ...
- vue2-通过axios实现数据请求
1.通过axios实现数据请求 vue.js默认没有提供ajax功能 所以使用vue的时候,一般都会使用axios的插件来实现ajax与后端服务器的数据交互. 注意,axios本质上就是javascr ...
- Mac下Jmeter快速安装与入门-模拟测试Post请求及设置Http头
[1]去Apache官网下载 Binaries系列的最新Jmeter.gz包 [2]下载到本地之后解压缩,进入到解压之后的目录然后,找到apache-jmeter-4.0/bin/jmeter.sh ...
- ajax使用向Spring MVC发送JSON数据出现 org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported错误
ajax使用向Spring MVC发送JSON数据时,后端Controller在接受JSON数据时报org.springframework.web.HttpMediaTypeNotSupportedE ...
- axios发送post请求后台接受不到问题
axios发送post请求后台接受不到问题 1.首先这是前端的问题 2.解决方案不唯一,但这招肯定行 <!DOCTYPE html> <html> <head> & ...
随机推荐
- 使用webform、websevice来进行ajax请求操作
通过使用webform(asp.net非mvc) .webservice 作为请求接口在前台发送ajax请求:1.前台代码: $.ajax({ type: "POST", //方法 ...
- Div实现水平垂直居中
在实际应用中很多地方不仅要求实现元素的水平居中或者垂直居中效果,还可能会在水平方向和垂直方向上都要实现居中效果,下面就简单介绍几种元素水平垂直居中的方法(注:不同的方法会存在一些优缺点以及兼容性问题) ...
- 使用 function 构造函数创建组件和使用 class 关键字创建组件
使用 function 构造函数创建组件: 如果想要把组件放到页面中,可以把构造函数的名称,当作 组件的名称,以 HTML标签形式引入页面中, 因为在React中,构造函数就是一个最基本的组件. 注意 ...
- 6.SpringMVC 配置式开发-处理器
处理器除了实现Controller 接口外,还可以继承自一些其他的类,来完成一些特殊的功能 1.继承自AbstractController类 若处理器继承自AbstractController类,那么 ...
- 9.Spring整合Hibernate_2_声明式的事务管理(Xml的方式)
使用xml的方式进行声明式的事务管理 推荐使用xml的方式,因为可以同时为多个方法进行声明 <!-- 开启Spring中的事务管理(声明式的事务管理) xml--> <!-- 不管是 ...
- 变种XSS:持久控制
变种XSS:持久控制 tig3r · 2015/11/30 10:42 0x00 引言 首先声明,这不是一个新洞,看过 Homakov 文章(最后附)以及译文的人想必对这种漏洞有所了解. 但原文写的太 ...
- Linux内核的arch目录
- 树的总结(遍历,BST,AVL原型,堆,练习题)
目录 树 一.抽象数据类型 二.二叉树的性质 三.二叉树的遍历 三.活用树的遍历 四.BST树 五.AVL树 六.BST树和AVL树练习 七.堆 树 @ 一.抽象数据类型 1.顺序存储 使用数组存储 ...
- java 中操作字符串都有哪些类?(未完成)它们之间有什么区别?(未完成)
java 中操作字符串都有哪些类?(未完成)它们之间有什么区别?(未完成)
- Linux下批量修改文件编码
假设需要将所有afish目录下的php文件,编码从gb2312转到utf8 cd afish find ./ -type f -name “*.php”|while read line;do echo ...