axios.post()踩坑记录

axios.post发送请求一直报错403,一看请求方式变成了option,反正就各种报错吧,

昨天加班也没搞定,今天用postman测试了一下,postman正常显示。

心想还好没去问老大,不然可能就尴尬了。。

然后看到一篇文章

******************************************************************************

上面的结果导致总是返回404 ,因为后台不允许options访问。

后来查询各种资料发现:根源在于,我们发出去的请求不是 simple request,那么在每次发送请求之前,都会发送一个options请求,simple request 需要同时满足以下条件(规范可以百度查询):

get、post、head 请求类型

不要设置列表之外的header(如: user-agent)

Content-Type 只能是:

application/x-www-from-urlencoded

multipart/from-data

text/plain

***********************************************************************************

又想到昨天用全局配置post方法的data数据的qs.stringify

api.interceptors.request.use(function (config) {

    if(config.method === 'post'){

      config.data = qs.stringify(config.data)

    }

于是在这里又加了一条

config.headers = {'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'}

然后就可以了

但是。。。

之前已经有这一条了

const api= axios.create();

api.defaults.baseURL = 'http://192.168.1.101:8080/mall/';

api.defaults.timeout = 5000;

api.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';

api.defaults.headers.post['X-Requested-With'] = 'XMLHttpRequest'

那之前的这一条为什么不生效呢???

待解答

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • axios 基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中使用 功能特性 在...
    Yanghc阅读 3,716评论 0 7
  • <extension>123</extension><mime-type>application/vnd.lotu...
    张不二01阅读 1,084评论 0 0
  • axios 基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中使用 功能特性 在...
    jslxm阅读 4,315评论 0 1
  • 今早送完儿子上学,老公邀我一起去公园晨练。偶遇一对年轻的夫妇,他们穿着情侣款的运动装,颜色很精神,让人看着很提神。...
    月夕花晨XLN阅读 438评论 0 1
  • 今天是我每天一篇文章的第66篇。 今天要谈谈人的事。作为一个电商运营所要具备的一些基本素质。 以前带电...
    很温暖阅读 1,311评论 0 1