axios 设置 transformRequest 后[Object Object]

 axios默认是Request Payload格式,加了transformRequest会默认变成form Data格式,需要自己再转一下变回Request Payload

axios.post('URL', data,{
  transformRequest: function (data) {
    // 对 data 进行任意转换处理
    return JSON.stringify(data);;
  },
  headers: {
        'Content-Type': 'application/json;charset=UTF-8'
  }
})

 

axios的transformRequest源码如下:

function transformRequest(data, headers) {
    normalizeHeaderName(headers, 'Content-Type');
    if (utils.isFormData(data) ||
      utils.isArrayBuffer(data) ||
      utils.isBuffer(data) ||
      utils.isStream(data) ||
      utils.isFile(data) ||
      utils.isBlob(data)
    ) {
      return data;
    }
    if (utils.isArrayBufferView(data)) {
      return data.buffer;
    }
    if (utils.isURLSearchParams(data)) {
      setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');
      return data.toString();
    }
    if (utils.isObject(data)) {
      setContentTypeIfUnset(headers, 'application/json;charset=utf-8');
      return JSON.stringify(data);
    }
    return data;
  }

 

posted @ 2021-03-01 17:39  三十三杨  阅读(1626)  评论(0)    收藏  举报