Вопрос по JavaScript (кроссдоменный ajax)

Помогите пожалуйста разобраться с тонкостями JS

var npage;
fetch('https://news.yandex.ru/yandsearch?rpt=nnews2&grhow=clutop&text=security')
    .then(function(response) {
         return response.text();
    }).then(function(content) {
        npage = content;
    });

Если данный код размещен на произвольном веб-ресурсе (например, на https://testsite.com/ ). Какие данные будут в переменной npage ? А что будет в переменной npage , если выполнить этот код на https://news.yandex.ru ? Из-за чего возникла разница?

Когда ты выполнил этот код на странице произвольного ресурса, то увидел в консоли сообщения об ошибке, а коллбек из .then не был выполнен.

Браузеры следуют правилам Правило ограничения домена — Википедия. Согласно этим правилам невозможно сделать ajax запрос к домену отличному от того, на котором запускается скрипт.

Существуют способы реализовать кроссдоменную передачу данных. Но для этого нужно иметь доступ к бекенду с обоих доменов. Ключевые слова для гугления - jsonp, CORS.

var npage;
//…
.then(function(content) {
npage = content;
});

По поводу стиля кода. Никогда не оформляй код так: хранение переменной, куда записывается значение из асинхронной операции.

1 лайк