axios post请求数据,在Content-Type为application/x-www-form-urlencoded情况下,data如何转换为json的解决办法

记录下此次bug的心路历程及解决方法,用时不到一天


首先在用axios.post请求时  Response for preflight has invalid HTTP status code 405  返回这样的错误,网上说设置

请求头为  "Content-Type", "application/json",但是并没有效果,于是乎 用ajax调用了一遍,发现没有任何问题,然后对比了一下请求:

ajax 请求

axios post请求数据,在Content-Type为application/x-www-form-urlencoded情况下,data如何转换为json的解决办法


axios请求

axios post请求数据,在Content-Type为application/x-www-form-urlencoded情况下,data如何转换为json的解决办法

    对比发现请求头成了options,而ajax 方法的'Content-Type'为'application/x-www-form-urlencoded',

把请求头改成这个之后,果然返回200了,但是却返不会正确数据,再次对比请求接口发现Form Data 参数为string,而不是json,

axios post请求数据,在Content-Type为application/x-www-form-urlencoded情况下,data如何转换为json的解决办法

于是乎想各种办法让参数变为json,axios官网提供了一种方法,transformRequest可以改变方式

axios post请求数据,在Content-Type为application/x-www-form-urlencoded情况下,data如何转换为json的解决办法

于是乎这样就可以返回正常的数据了,

到这里基本上也就解决了问题了,但是我还需要用到我得参数,于是乎

axios post请求数据,在Content-Type为application/x-www-form-urlencoded情况下,data如何转换为json的解决办法


相当于做了两次强制类型转换;

在下是在解决完问题后又返回去想了一遍,有很多细节没有写道,有机会下次边解决边写。

亲测有效,鄙人不才,有问题欢迎留言。