0

这是发送 API 的函数

export const socialPostMurmur= (publicKey,content,sig,visibility,video,photo)=>{
  // console.log(publicKey,content,sig,visibility,video,photo);

  console.log('photo',photo);

let data;

  data="pub=" + publicKey.toString() +
  "&content=" + content +
  "&sig=" + sig.sig +
  "&visibility=" + visibility +
  "&videos=[]" +
  "&photos=" + photo

  console.log("data====",data)


  fetch('https://murmurjapi.wandx.co/accounts/postMurmur', {
method: 'POST',
headers: new Headers({
  "Content-Type": "application/x-www-form-urlencoded", // <-- Specifying the Content-Type
  Accept: "application/json"
}),
body:data
}).then((response) => response.json())
.then((responseJson) => {
  console.log("New post is called",responseJson);
  // return responseJson.movies;
})
.catch((error) => {
console.error('this is error',error);
});
}

这里函数参数中的照片和视频是数组。所以当我在做 console.log('photo',photo); 我得到了这样的正确数组:

["QmYTLjw3dzwNVzhMZGVdbZwbt7KTfc51exCWXeTKsy2bff-image-jpg-general"]

但是当我将数据发送到 API 并打印它时。它没有像数组一样显示它,并且响应 api 调用我得到状态失败 err null。

这是数组在 API 中的打印方式:

照片=QmYTLjw3dzwNVzhMZGVdbZwbt7KTfc51exCWXeTKsy2bff-image-jpg-general

这是我在 API 中的数据

console.log("数据====",数据)

pub=EOS7qoTnhdcdihvcvEBkqNJ21iNwFJURRvgciHCuG2ihsvPZyPdL4&content=H&sig=SIG_K1_JwaNudk7P6AeogY9LSKey7hTwSTYM9E1GsLF3twRgqap6zCFVY78PzZgF1yA6GUTdDuC4vNXo1vUgwFCFKHppsyHc1zGVb&visibility=1&videos=[]&photos=QmYTLjw3dzwNVzhMZGVdbZwbt7KTfc51exCWXeTKsy2bff-image-jpg-general

这是我在 API 调用后得到的响应

New post is called 
{status: false, err: {…}}
status: false
err: {}
__proto__: Object
4

1 回答 1

0

没有标准的方法在application/x-www-form-urlencoded. 一个常见的扩展(由 PHP(本机)和body-parser(在扩展模式下)支持)是为数组中的每个值添加后缀[]并重复它。

IE

const animals = ["dog", "cat", "mouse"];
const field_name = "animal[]";
const url_encoded_animals = animals.map(
    value =>
        `${encodeURIComponent(field_name)}=${encodeURIComponent(value)}`
);
const form_encoded = url_encoded_animals.join("&");
console.log(form_encoded);

于 2020-01-20T13:42:49.113 回答