定制开发小程序请求出现“Content type ‘application/octet-stream‘not supported“错误

请求出现"Content type 'application/octet-‘not supported“错误

  • 错误描述:
    Content type 'application/octet-stream‘not supported,定制开发小程序即内容类型’application/octet-stream '不支持。由此可见,定制开发小程序我们这里传的参数需要’application/octet-stream’类型支持。
    octet-stream:任意二进制流数据。
    application/octet-stream:只能提交二进制或文件。
  • 出现错误的请求:
    POST 请求,需要传一个 file 文件和一个 json 字符串,如下图所示:

    react 前端提交表单传参这样写,此时 blackListBatch 传的是 json 字符串,如下:
const { file } = values;const formData = new FormData();formData.append('file', file[0].originFileObj);const newValue = _.cloneDeep(values);delete newValue.file;const json = JSON.stringify(newValue);formData.append('blackListBatch', json);const params = {  data: formData,  callback: () => {    message.success(intl('导入成功'));  },};// 请求接口offlineImport(params);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

然后浏览器就出现了上面的报错。

  • 解决办法:
    由错误描述可知,我们这里不能传一个json字符串,而是一个二进制,这时需要使用 Blob() 构造函数将 json 字符串转化为 Blob 对象(Blob 对象表示一个不可变、原始数据的类文件对象,它的数据可以按文本或二进制的格式进行读取)放到 formData 中,如下:
const { file } = values;const formData = new FormData();formData.append('file', file[0].originFileObj);const newValue = _.cloneDeep(values);delete newValue.file;const json = JSON.stringify(newValue);// 将 json 字符串转化为 Blob 对象const blob = new Blob([json], { 	type: 'application/json',});formData.append('blackListBatch', blob);const params = {  data: formData,  callback: () => {    message.success(intl('导入成功'));  },};// 请求接口offlineImport(params);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

type: ‘application/json’ 表示将会被放入到 blob 中的数组内容的类型是 json 字符串。

如上,便可解决该报错。

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发