Задать вопрос

Загрузить разметку с другого сайта через cors ajax?

Как правильно скачать разметку с другого сайта через скрипт браузера? Например мне нужно получить определенные метатеги с yandex.ru.

В статье https://developer.mozilla.org/ru/docs/Web/HTTP/CORS написано, что существуют "простые" запросы, если я использую GET и не использую нестандартных заголовков, то все должно работать.
Вот код:
fetch('https://bootstrap-vue.js.org')
    .then(res => res.text())
    .then(res => {
        console.log(res)
    })
    .catch(err => console.log(err))


Работает, но не на всех сайтах, например на https://bootstrap-vue.js.org работает, а если обращаюсь к яндексу, то ошибка
5d13cda6e1674914664503.png
Пробовал разные заголовки добавлять, пробовал разный mode для fetch использовать, но так и не получилось.
  • Вопрос задан
  • 232 просмотра
Подписаться 2 Средний Комментировать
Решения вопроса 2
Stalker_RED
@Stalker_RED
fetch это тоже ajax, а не простой GET.

Или настроить тот, другой сервер, или использовать свой прокси (можно даже кеширующий ☝), или отказаться от ajax.
Ответ написан
Комментировать
irishmann
@irishmann
Научись пользоваться дебаггером
Обращаться через php, отправляя нужные заголовки. Можно использовать cors-proxy. Пример на JQUERY:
$.ajax({
  type:'POST',
  url: 'https://cors-anywhere.herokuapp.com/http://************.ru/api/',
  data: { 
    query: '{"ask":"'+message+'","userid":'+id+',"key":"1"}'
  },
  success: function(data){
    msg = JSON.parse(data);
    $(".messages").append('<li><div class="text-msg receive_msg">'+msg['aiml']+'</div></li>');
    while($(".messages li").length > 7){
      $('li:first').detach();
    }
  }
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@grinat
Чтобы простые работали, должен быть alow origin с ориджин с которого ты делаешь запрос или со *.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
24 дек. 2024, в 15:54
300 руб./за проект
24 дек. 2024, в 15:42
2000 руб./за проект
24 дек. 2024, в 15:05
1000 руб./за проект