Post запрос к серверу steam
Я хотел создать заказ при нажатии на кнопку
1 запрос к серверу
globalThis.httpPostErrorPause = async function(httpUrl, httpParams) {
return new Promise((resolve, reject) => {
const myHeaders = new Headers();
myHeaders.append('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
let request = new Request(httpUrl,
{
method: 'POST',
headers: myHeaders,
body: httpParams,
});
let fetchRequest = (window.content !== undefined) ? window.content.fetch : fetch;
fetchRequest(request).then((response) => {
if (!response.ok) {
console.log(`Code: ${response.status} Text: ${response.statusText}`);
reject({ status: response.status, statusText: response.statusText });
}
return response.json();
}).then((nextResponseJSON) => {
if (nextResponseJSON === null){
reject('Error!');
}
else if (nextResponseJSON.success === 1) {
resolve(nextResponseJSON);
}
else if (nextResponseJSON.success === 29) {
resolve(nextResponseJSON);
}
else {
reject(nextResponseJSON.message);
}
}).catch((error) => {
console.log(error);
reject(error);
});
});
}
Функция обработчика кнопки
async function createBuyOrder() {
let appid = this.getAttribute("appid");
let hashname = encodeURIComponent(this.getAttribute("hashname"));
let item_id = this.getAttribute("item_id");
let inputPriceDom = document.getElementById(`myItemPrice${item_id}`);
let itemCountDom =document.getElementById(`myItemQuality${item_id}`);
if (inputPriceDom.value.trim() == '' || itemCountDom.value.trim() == '' || itemCountDom.value.trim() <= 0) {
if (document.getElementById(`error${item_id}`)) return;
let error = document.createElement('p');
error.innerText = "input value";
error.id = `error${item_id}`;
itemCountDom.after(error);
return;
}
let inputPrice = inputPriceDom.value.trim();
let itemCount = itemCountDom.value.trim();
if(appid !== null && hashname !== null && item_id !== null) {
let params = `sessionid=${sessionId}¤cy=1&appid=${appid}&market_hash_name=${hashname}&price_total=${Math.round(inputPrice * 100 * itemCount)}&quantity=${itemCount}&billing_state=&save_my_address=0`;
let url = "https://steamcommunity.com/market/createbuyorder/";
let serverResponse = await globalThis.httpPostErrorPause(url, params);
console.log(serverResponse.success , +serverResponse.success, typeof serverResponse.success);
let htmlResponce = document.getElementById(`responceServerRequest_${item_id}`);
if (+serverResponse.success == 1) {
document.getElementById(`cancelBuyOrder_${item_id}`).setAttribute("buyOrderId", +serverResponse.buy_orderid);
}
htmlResponce.innerText = (+serverResponse.success == 29) ? serverResponse.message :
(+serverResponse.success == 1) ? "Price updated" : "Eroor"; // message: "У вас уже есть заказ на этот предмет. Вы должны либо ." success: 29{buy_orderid: "4562009753" success: 1}
}
}
функцию обращения к северу я проверял в консоли и она работает, но в программе она возврашает Code: 400 Text: Bad Request и из за неё он ругается uncaught exception: Object
код программы https://drive.google.com/file/d/1addqGO_6SlaZIJyWYjdWQXSIfHxGmbFv/view?usp=sharing
заранее спасибо за помощь