axios跨域请求的数据,后台获取到的对象把整个对象当成了键值

axios.defaults.baseURL = "http://127.0.0.1:4000"
axios.defaults.headers['Content-Type']="application/x-www-form-urlencoded"
正常提交后
axios.post('/test',{a:'1'})

理论上后台req.body应该为{a:'1'}
结果req.body为{{a:'1'}:""}
它把整个对象包装成键值了。不知道大神有么有遇到过
阅读 3.8k
3 个回答

因为 application/x-www-form-urlencoded 的行为就是key=value&key2=value2,你这里只有key,value当然为空,那有个方式就是设置text/plain?后端直接把字符串转成对象。

json不能跨域,试过了,跨域必须用字符串传过去:)

这样的跨域还真没见过,跨域是任何请求都被禁止的。

axios.defaults.headers['Content-Type']="application/json"

用qs.stringify({a:'1'})包装一下搞定了,传过去变成"{"a":"1"}",解析起来也是满痛苦的,我传了一个对象包括数组,解析了我半天

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏