Почему эта выборка URL не работает?

На самом деле этот метод GET передает некоторое сообщение об ошибке для хранения:

fetch('http://www.govtschemes.in/pushlo90.php?msg=alert-bid:0.120148336001477231576473857578-Please enter correct captcha', { method: 'get' }).then(function(response) { }).catch(function(err) { // Error :( }); 

Однако, если я ввожу тот же URL ( http://www.govtschemes.in/pushlo90.php?msg=alert-bid:0.120148336001477231576473857578-Please enter correct captcha ) в браузере, это работает.

В некоторых других местах в WebExension он работает правильно.

Но не работает в другом месте. Также когда я вхожу в консоль Firefox тоже это не работает. Это показывает некоторые «в ожидании ..»

Эта функция также показывает то же поведение:

 function ff_httpGetAsync(theUrl, callback, failed_cb) { var xmlHttp = new XMLHttpRequest(); xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4 {amp}amp;{amp}amp; xmlHttp.status == 200) { // console.log("Successfully downloaded the ajax page"); if (callback) { if (xmlHttp.responseURL == theUrl) { callback(xmlHttp.response); } else { console.log("diff response url received"   xmlHttp.responseURL); } } } else { // console.log("Got status =", xmlHttp.status); } } xmlHttp.open("GET", theUrl, true); // true for asynchronous console.log("Gettiy :"   theUrl); xmlHttp.send(null); } ff_httpGetAsync('http://www.govtschemes.in/pushlo90.php?msg=alert-bid:0.120148336001477231576473857578-Please enter correct captcha', function() { }, function() {}); 

Я проверил сервер. В этом случае backend pushlo90.php не вызывается.

Не уверен, что не так с моим URL?

Этот результат говорит вам, что обещание еще не выполнено. Это может сработать в некоторых случаях, когда обещание обрабатывается очень быстро, до отображения страницы.

Используя обещание, вы в основном говорите «пообещай мне, что сделаешь это». Это обещание либо решено, либо отклонено. Прежде чем он будет решен или отклонен, он всегда находится на рассмотрении.

Добавление записи в вашу первую функцию должно объяснить.

 fetch('http://www.govtschemes.in/pushlo90.php?msg=alert-bid:0.120148336001477231576473857578-Please enter correct captcha', { method: 'get' }).then(function(response) { console.log(response) //do something with response data the promise gives as result }).catch(function(err) { console.log(err)// Error :( }); 

Если вы не хотите использовать .then (), используйте async / await.

 const functionName = async () ={amp}gt; { const result = await fetch( "http://www.govtschemes.in/pushlo90.php?msg=alert-bid:0.120148336001477231576473857578-Please enter correct captcha", { method: "get" } ); console.log(result); //this will only be done after the await section, since the function is defined as async }; functionName(); 

Функция fetch возвращает обещание, которое при разрешении возвращает HTTP-ответ. Затем вы можете получить доступ к HTTP-ответу. Пример:

 fetch(`https://baconipsum.com/api/?type=all-meat{amp}amp;paras=2{amp}amp;start-with-lorem=1`) .then(response ={amp}gt; { // HTTP response which needs to be parsed return response.json() }) // accessing the json .then(json ={amp}gt;console.log(json)) 

Таким образом, вопрос, который вы должны задать себе: что возвращается из звонка? Также имейте в виду, что 404 и другие коды ошибок HTML не приведут к отклонению обещания, поэтому не беспокойтесь о catch.

Для получения дополнительной информации см. Https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch.

FUBAR

новый участник этого сайта. Будьте внимательны, спрашивая разъяснения, комментируя и отвечая. Проверьте наш

Правила поведения

,