Javascript “发送”;生的;Axios的有效载荷

Javascript “发送”;生的;Axios的有效载荷,javascript,axios,Javascript,Axios,如何向Axios发送原始有效负载/请求正文 我试图调用的端点期望请求主体只是一个字符串,它将收集并使用该字符串 如果我尝试将字符串传递给requestBody的axios.post(),它会将其转换为一个没有值的对象({“this+is+my+message”:“}),并最终像这样解析“this+is+my+message=“) 我查看了文档,但找不到任何似乎有效的选项transformRequest似乎是最明显的,但它以字符串形式发送,而我则发送了字符串(字面意思是d=>d),但它似乎仍然将其

如何向Axios发送原始有效负载/请求正文

我试图调用的端点期望请求主体只是一个字符串,它将收集并使用该字符串

如果我尝试将字符串传递给
requestBody
axios.post()
,它会将其转换为一个没有值的对象(
{“this+is+my+message”:“}
),并最终像这样解析
“this+is+my+message=“


我查看了文档,但找不到任何似乎有效的选项
transformRequest
似乎是最明显的,但它以字符串形式发送,而我则发送了字符串(字面意思是
d=>d
),但它似乎仍然将其转换为一个无值的JSON对象。

如果我将
内容类型
标题设置为
text/plain
,它不会将其转换为JSON或表单数据,而是根据需要发送

axios.post('/my-url', 'my message text', {
  headers: { 'Content-Type': 'text/plain' }
});

由于我在这里遇到了一个类似的问题,我想提供一个额外的答案。我正在加载一个图像文件(从
元素)并使用axios将其发送到服务器-但作为原始体,而不是将其包装在
多部分/表单数据
请求中

在原始数据的情况下,如果数据以
ArrayBuffer
格式提供,axios的工作效果最好。这可以通过使用以下代码片段(ES6)实现:

(以这种方式使用
内容类型
标题有点不标准,但在我的情况下,仅用作传输原始文件名的方式)

见:

-数据的描述

  const myFile = getMyFileFromSomewhere()
  const reader = new FileReader()
  reader.onload = () => {
    const result = reader.result
    const headers = {
      'Content-Type': file.type,
      'Content-Disposition': 'attachment; filename="' + file.name + '"'
    }
    axios.post('/upload', result, { headers: headers })
  }
  reader.readAsArrayBuffer(myFile)