#reactjs #fetch-api
Вопрос:
Я создал новый API и пытаюсь получить некоторую информацию о романах.
Поэтому я пытаюсь отправить какой-нибудь запрос, чтобы https://www.novelupdates.com/wp-admin/admin-ajax.php
этот запрос отлично работал в мобильном приложении для Android. Но я продолжаю получать 403
, когда создаю API.
Это мой код, который отлично работал в мобильном приложении, но не в API при использовании node-fetch
public async search(name: string) {
try {
var html = await HttpClient.postForm("https://www.novelupdates.com/wp-admin/admin-ajax.php", {
action: "nd_ajaxsearchmain",
strType: "desktop",
strOne: name,
strSearchType: "series"
});
var container = HttpClient.parseHtml(html).querySelectorAll("a");
return container.find(x => name.trim().length == (x.querySelector(".search_hl") ? ? x.querySelector("span")).innerHTML.htmlText(false).trim().length amp;amp; (name.toLowerCase().indexOf((x.querySelector(".search_hl") ? ? x.querySelector("span")).innerHTML.htmlText().toLowerCase()) != -1)) ? .getAttribute("href") ? .uri(this.root);
} catch (error) {
console.log(error)
return undefined;
}
}
static async postForm(url: string, item: any) {
const formData = new FormData();
try {
console.log(`Sending postForm to ${url}`);
Object.keys(item).forEach((x) => {
formData.append(x, item[x]);
});
var data = await httpClient.fetchWithTimeout(url, httpClient.staticOption({
method: 'POST',
body: formData,
headers: formData.getHeaders()
}));
if (!data.ok) {
const message = `postForm:An error has occured:${data.status}`;
// console.log(header);
console.log(message);
} else {
console.log('Data is ok. proceed to parse it');
var text = await data.text();
try {
return text amp;amp; text.indexOf(':') != -1 amp;amp; text.indexOf('{') != -1 amp;amp; text.indexOf('}') != -1 ? JSON.parse(text) : text;
} catch (e) {
return text;
}
}
return undefined;
} catch (e) {
console.log(e);
console.log(formData);
}
}