AJAX получает окончательный ответ страницы после завершения загрузки анимации

#jquery #html #ajax #api

#jquery #HTML #ajax #API

Вопрос:

Я пытаюсь получить HTML-страницу с результатами поиска, используя это https://www.gigablast.com/search ?q= Париж На этой странице разрешены исправления

Анимация загрузки отображается перед получением результатов

Вызов ajax получает только страницу загрузки, но не фактическую отображаемую страницу после загрузки

Как пропустить этот промежуточный результат?

вот мой код

 $(document).ready(function() {
  $(".my_link").click(
    function() {
      console.log("requesting");
      $.ajax({
        url: 'https://www.gigablast.com/search?q=hello',
        type: 'GET',
        async: false,
        cache: false,
        timeout: 30000,
        error: function() {

          return true;
        },
        success: function(msg) {
          console.log(msg);

        }
      });
    });
});  
 <button class="my_link">search</button>  

Ответ №1:

Похоже, указанный вами URL-адрес сам использует ajax для возврата результатов. Быстрый просмотр в инструментах разработки показывает, что URL, который они используют для ajax, является:

https://www.gigablast.com/search?q=helloamp;rand=1553268017076amp;uwkv=4035168804amp;rand=1553269522489amp;ziph=4035168804

То есть такой же, как у вас, но с amp;rand=1553268017076amp;uwkv=4035168804amp;rand=1553269522489amp;ziph=4035168804 дополнительными строками запроса. это возвращает страницу без загрузчика ajax.

Короткий ответ: с вашего URL вы не можете получить результаты поиска, потому что они не существуют, когда вы возвращаете страницу. Если бы вы добавили строку запроса, вы, вероятно, получили бы желаемые результаты, но я предполагаю, что это мера безопасности, которая предназначена для того, чтобы помешать людям делать то, что вы пытаетесь сделать!

Ответ №2:

Вы можете использовать beforeSend, загрузчик после извлечения, загрузчик будет отключен

 $(document).ready(function() {
  $(".my_link").click(
    function() {
      console.log("requesting");
      $.ajax({
        url: 'https://www.gigablast.com/search?q=hello',
        type: 'GET',
        async: false,
        cache: false,
        timeout: 30000,
        beforeSend: function() {
                $('#response').text('Loading...');
        },

        error: function() {

          return true;
        },
        success: function(msg) {
          console.log(msg);

        }
      });
    });
});
  

Комментарии:

1. Я думаю, что OP имел в виду целевой URL, имеющий загрузчик, а не его собственный вызов