axios怎么使用这种请求形式?

在postman这种是成功的(如下图),但是在axios不知道怎么写,我写的报400错误,求教!
图片描述

阅读 2.5k
4 个回答

直接上图:
首先我一般是先封装好了api.js之后使用直接调用就好,然后getUtils是一些固定的参数,然后在图2是在vuex之后的actions中创建好的事件去调用api中的ge或者post,或者是其他,这个自己定义就好,然后看下get这个其实传递两个参数,一个是请求的URL,一个是请求的参数,具体参数的上传格式是需要你和后端同事协商的,看以那种数据个数提交比较好,大概就这样
图片描述
图片描述

直接传递对象不序列化就好了。
当 传递未序列化的js对象时,会自动设置Content-Type: application/json 。直接将原对象传递。
如果序列化了,
ContentType会自动设置成 Content-Type: application/x-www-form-urlencoded 就成了传统表单了。。
具体的为什么会400,你需要后端联合调试。

已解决,我用的参数主体是params,put、post、patch应该使用data的:

// data 是作为请求主体被发送的数据
// 只适用于这些请求方法 'PUT', 'POST', 和 'PATCH'
// 在没有设置 transformRequest 时,必须是以下类型之一:
// - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams
// - 浏览器专属:FormData, File, Blob
// - Node 专属: Stream

  data: {
    firstName: 'Fred'
  },

恰巧项目里有用到。数据用 JSON.stringify 序列化下就可以了,( axios 默认的 Content-Type 就是 application/json)。