Я хочу сделать запрос на выборку к API, который принимает различные типы запросов тела: хэндл твиттера, ссылку на Facebook, номер телефона и т. Д. Структура тела:
body: {
"typeOfHandle": "input"
}
Поскольку существуют разные типы ручек, я проверяю тип ввода и назначаю его телу соответственно, как показано ниже:
// handle is the input
let atSign = /^[@]/,
handleIsTwitter = atSign.test(handle.value),
handleType;
handleIsTwitter ? handleType = `"` + "twitter" + `"` : console.log("not twitter");
let abc = `"` + handle.value + `"`;
let bodyOfFetch = `{${handleType}: ${abc}}`;
console.log("body: " + bodyOfFetch);
fetch("xxx", {
method: "POST",
headers: {
Authorization: "xxx"
},
body: JSON.stringify(bodyOfFetch)
})
.then(function(res) {
return res.json();
})
.then(function(json) {
console.log(json);
});
Однако этот метод возвращает ошибку body malformed
. Когда я выполняю запрос статически (т.е. заменяю переменные статическим текстом, например, "twitter": "@alex"
), это работает. Я дважды, трижды, четыре раза проверил синтаксис, я не думаю, что это проблема. Может ли это быть проблемой на стороне API?