Отправить запрос Ajax для получения данных JSON из файла JSON с чистым JavaScript

Я хочу отправить запрос AJAX с чистым JS без использования сервера или бездействия безопасности в браузере Chrome.

Это мой код:

if(document.getElementById("showJson")){
    document.getElementById("showJson").addEventListener("click", init);
}

function init(){
    loadJSON(function (response){
        var actual_JSON = JSON.parse(response);
    });
}

function loadJSON(callback) {   
    var xobj = new XMLHttpRequest();
        xobj.overrideMimeType("application/json");
    xobj.open('GET', 'my_data.json', true); // Replace 'my_data' with the path to your file
    xobj.onreadystatechange = function () {
          if (xobj.readyState == 4 && xobj.status == "200") {
            // Required use of an anonymous callback as .open will NOT return a value but simply returns undefined in asynchronous mode
            callback(xobj.responseText);
          }
    };
    xobj.send(null);  
    console.log(xobj);
 }

и это файл JSON "студентов":

[{
    "name" : "Mohamed Kamel",
    "age" : 24,
    "grade" : 100
},{
    "name": "hamada",
    "age" : 20,
    "grade":90
},{
    "name" : "ali",
    "age" : 23,
    "grade" : 80
}]

2 ответа

Ты не можешь.

В целях безопасности загрузка файла должна производиться только с разрешения пользователя.

Но почему вы хотите это сделать? Нет никакой разницы (в производительности) для сервера, чтобы прочитать файл и отправить контент или отправить файл. В обоих случаях сервер читает файл.

Похоже, вы столкнулись с проблемой "перекрестного происхождения". Если файл, который вы запрашиваете, находится в другом домене, для базовых заголовков может быть установлено значение «strict-origin-when-cross-origin». Если владелец этого сайта хочет иметь возможность поделиться этим файлом JSON с кем-либо, он должен изменить имя с .json на .php и добавить его в свой заголовок.

      header("Access-Control-Allow-Origin: *");
Другие вопросы по тегам