Установить содержимое другого сайта в качестве переменной JS - PullRequest
0 голосов
/ 02 января 2019

есть ли JS-функция для получения содержимого URL-адреса из другого домена в переменную? В частности, мне нужно установить содержимое этого сайта: https://www.alza.cz/apps/externalbanner.ashx?type=1785 в виде строки для переменной JS. Я пытаюсь пару кодов AJAX, .load JQuery Fuction, но ничего не работает. Я начинаю думать, что это невозможно сделать с JS, не могли бы вы помочь мне с этим, пожалуйста? В лучшем случае, чтобы напрямую разделить эту строку на 3 переменные, где разделитель является пробелом, но в этом нет необходимости, я могу сделать это самостоятельно.

Лучший, Petr

1 Ответ

0 голосов
/ 02 января 2019

Наиболее распространенные методы для отправки ajax-запроса от JS:

Получить API (довольно новый, возможно, не все браузеры поддерживают его)

fetch('url')
  .then(response => response.text()) // response is text format
  .then(content => {
    /* do something here*/
    alert(content))
  }
)

И старый класс XMLHttpRequest

  const xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
     alert(this.responseText);
    }
  };
  xhttp.open("GET", "url", true);
  xhttp.send();

Примечание:

  • Отправка запросов AJAX в главном потоке - плохая идея, поскольку веб-сайт замораживается, поэтому вы получите данные в другом потоке

  • Удаленный сервер может не позволить вам получить его содержимое с другой страницы, в этом случае консоль JavaScript выдаст ошибку, например:

Доступ к XMLHttpRequest в «https://google.com/' от источника» http://localhost:3000' заблокирован политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

И есть некоторые другие, менее строгие ограничения, такие как это, например: нет выборки с http на https, все неудачные запросы будут записываться на консоль


Чтобы разбить строку на несколько частей, используйте

const splitedArray = 'a b c'.split(' ' /* seperate by space */)
splitedArray[0] == 'a'
splitedArray[1] == 'b'
splitedArray[2] == 'c'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...