axios post请求数据,在Content-Type为application/x-www-form-urlencoded情况下,data如何转换为json的解决办法
2018-02-27 17:11
2276 查看
记录下此次bug的心路历程及解决方法,用时不到一天
首先在用axios.post请求时 Response for preflight has invalid HTTP status code 405 返回这样的错误,网上说设置
请求头为 "Content-Type", "application/json",但是并没有效果,于是乎 用ajax调用了一遍,发现没有任何问题,然后对比了一下请求:
ajax 请求
axios请求
对比发现请求头成了options,而ajax 方法的'Content-Type'为'application/x-www-form-urlencoded',
把请求头改成这个之后,果然返回200了,但是却返不会正确数据,再次对比请求接口发现Form Data 参数为string,而不是json,
于是乎想各种办法让参数变为json,axios官网提供了一种方法,transformRequest可以改变方式
于是乎这样就可以返回正常的数据了,
到这里基本上也就解决了问题了,但是我还需要用到我得参数,于是乎
相当于做了两次强制类型转换;
在下是在解决完问题后又返回去想了一遍,有很多细节没有写道,有机会下次边解决边写。
亲测有效,鄙人不才,有问题欢迎留言。
首先在用axios.post请求时 Response for preflight has invalid HTTP status code 405 返回这样的错误,网上说设置
请求头为 "Content-Type", "application/json",但是并没有效果,于是乎 用ajax调用了一遍,发现没有任何问题,然后对比了一下请求:
ajax 请求
axios请求
对比发现请求头成了options,而ajax 方法的'Content-Type'为'application/x-www-form-urlencoded',
把请求头改成这个之后,果然返回200了,但是却返不会正确数据,再次对比请求接口发现Form Data 参数为string,而不是json,
于是乎想各种办法让参数变为json,axios官网提供了一种方法,transformRequest可以改变方式
于是乎这样就可以返回正常的数据了,
到这里基本上也就解决了问题了,但是我还需要用到我得参数,于是乎
相当于做了两次强制类型转换;
在下是在解决完问题后又返回去想了一遍,有很多细节没有写道,有机会下次边解决边写。
亲测有效,鄙人不才,有问题欢迎留言。
相关文章推荐
- 获取 request 中用POST方式"Content-type"是"application/x-www-form-urlencoded;charset=utf-8"发送的 json 数据
- (转)获取 request 中用POST方式"Content-type"是"application/x-www-form-urlencoded;charset=utf-8"发送的 json 数据
- 通过接口提交数据,Content-Type应该是application/x-www-form-urlencoded还是application/json?
- 获取 request 中用POST方式"Content-type"是"application/x-www-form-urlencoded;charset=utf-8"发送的 json 数据
- 获取 request 中用POST方式"Content-type"是"application/x-www-form-urlencoded;charset=utf-8"发送的 json 数据
- 四种常见的 POST 提交数据方式(application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml)
- Http请求中请求头Content-Type 为 form-data、x-www-form-urlencoded、raw、binary的区别
- 未指定Content-Type: application/x-www-form-urlencoded将会导致服务端获取Ajax POST数据失败
- Content-Type中application/x-www-form-urlencoded 和 multipart/form-data的区别
- "Asp.Net Web Api MediaTypeFormatter Error for x-www-formurlencoded data" 解决方法
- AngularJS通过post、put提交application/x-www-form-urlencoded的数据
- 关于Content-Type中application/x-www-form-urlencoded 和 multipart/form-data的区别及用法
- vue中的axios.post使用json数据传输,出现请求头字段内容类型是不被允许的情况的解决方案
- 解决content-type为"application/json"的post过来的数据在php端接受不到的问题
- 用Wireshark lua编写的协议解析器查看Content-Type为application/x-www-form-urlencoded的HTTP抓包
- Content-Type的application/x-www-form-urlencoded和multipart/related
- python实现http post四种请求体x-www-form-urlencoded ,form-data ,json,xml
- http以post方式上传一个文件,构造其请求头和消息报文 application/x-www-form-urlencoded multipart/form-data
- SpringMVC的json数据绑定Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported