@ZaxapKramer
Больной верстальщик

Проблема при получении JSON с другого сайта с помощью тега script, как правильно решить?

Загружаю JSON посредством javascript вот так:

var script = document.createElement('script');
script.src = json_src;
document.body.appendChild(script);
script.onload = function() {
	alert("Done!");
	console.log(JSON.parse(script).innerHTML);
}


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

  1. JSON.parse(...) не хочет выполняться. По-моему, это не то, что нужно в данном случае, но ничего другого не нашел...
    Цель - забрать содержимое JSON, полученного посредством скрипта, но как это сделать правильно? Это же возможно?
  2. Google Chrome кидает ошибку: "Refused to execute script from '*json_url*' because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled.".
    Хорошо. Добавляю
    script.type = "application/json";
    В итоге получается такой код:
    var script  = document.createElement('script');
    script.type = "application/json";
    script.src  = json_src;
    document.body.appendChild(script);
    script.onload = function() {
    	alert("Done!");
    	console.log(JSON.parse(script).innerHTML);
    }

    Но в таком случае ни в Chrome, ни в Firefox ничего не загружается: тег есть, толку нет.


Заранее большое спасибо за помощь. Уже теряюсь в догадках...
  • Вопрос задан
  • 940 просмотров
Решения вопроса 1
bubandos
@bubandos
bash'у, javascript'ую, php'лю, css'аю, html'каю
Вызов JSON.parse(str) превратит строку с данными в формате JSON в JavaScript-объект/массив/значение.
А вы что делаете? Вы в JSON.parse передаете объект, созданный document.createElement('script');

Замените
JSON.parse(script).innerHTML
на
JSON.parse(script.innerHTML)

Понятно почему?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы