Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.11.2021, 08:39
Новичок на форуме
Отправить личное сообщение для rfnj Посмотреть профиль Найти все сообщения от rfnj
 
Регистрация: 10.11.2021
Сообщений: 7

Как получить ответ сервера на мой запрос используя XMLHttpRequest
Если вставить в клнсиль браузера на станице стим, то этот код выставляет 2 предмета по цене 0,03 и запрос проходит, но ответ я не могу получить. xhrCancelBuyOrder.responseText меет какое-то значение но функция это значение не передаёт.
Буду рад любой помощи.

Код:
globalThis.httpPostErrorPause = async function() {
    let httpPostRequest = new Promise(function (resolve, reject) {
        var xhrCancelBuyOrder = new XMLHttpRequest();
        var url = "https://steamcommunity.com/market/createbuyorder/";
        var params = `sessionid=${g_sessionID}&currency=1&appid=753&market_hash_name=326670-Elf Waywatcher (Foil)&price_total=${Math.round(0.03 * 100 * 2)}&quantity=2&billing_state=&save_my_address=0`;
        xhrCancelBuyOrder.open('POST', url, true);
        xhrCancelBuyOrder.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        xhrCancelBuyOrder.onreadystatechange = function () {
            if(xhrCancelBuyOrder.readyState == 4 && xhrCancelBuyOrder.status == 200) {
                console.log(xhrCancelBuyOrder.responseText);
                return resolve(this.responseText);
            } 
        };
        xhrCancelBuyOrder.onerror = function () {
            reject(new Error("Network Error"));
        };
        xhrCancelBuyOrder.send(params);
    });
};
var val = await globalThis.httpPostErrorPause();
console.log (val);
Ответить с цитированием
  #2 (permalink)  
Старый 10.11.2021, 10:15
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

rfnj, такое (использовать await)
Сообщение от rfnj
var val = await globalThis.httpPostErrorPause();
можно только в async-функциях...
Ответить с цитированием
  #3 (permalink)  
Старый 10.11.2021, 10:56
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

rfnj, т.е., если следовать твоей структуре кода, у тебя должно быть нечто такое...
const test = async function() {
	const http = new Promise((res, rej) => {
		setTimeout(_ => res('Некие данные'), 2000)
	})
	return http
}
async function start() {
	const val = await test()
	alert(val)
}
start()
Ответить с цитированием
  #4 (permalink)  
Старый 10.11.2021, 11:00
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Хотя вот такой вариант смотрится менее накручено...
const test = function() {
	return new Promise((res, rej) => {
		setTimeout(_ => res('Некие данные'), 2000)
	})
}
async function start() {
	const val = await test()
	alert(val)
}
start()
Ответить с цитированием
  #5 (permalink)  
Старый 10.11.2021, 11:46
Новичок на форуме
Отправить личное сообщение для rfnj Посмотреть профиль Найти все сообщения от rfnj
 
Регистрация: 10.11.2021
Сообщений: 7

Большое Спасибо
Ответить с цитированием
  #6 (permalink)  
Старый 10.11.2021, 11:50
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Сообщение от ksa
можно только в async-функциях...
В ES модулях теперь можно без функций.
Ну Chromium последних можно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не отправляется 2й запрос после 1го. (XMLHttpRequest) Артист AJAX и COMET 6 05.10.2016 00:37
Как получить рисунок с сервера без сохранения в файле maruany AJAX и COMET 1 17.06.2010 10:15
30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма. pizzZ AJAX и COMET 2 18.02.2010 09:06
Ответ сервера в плугине ajaxForm отдается неправильно. IgorOk jQuery 11 13.12.2009 04:35
Как получить файл с сервера AJlekceu AJAX и COMET 1 02.11.2008 13:41