1

我想使用纯 JS 发送 AJAX 请求,而不使用服务器或空闲 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
}]
4

2 回答 2

0

看起来您遇到了“跨源”问题。如果您请求的文件位于另一个域中,则可能会设置“strict-origin-when-cross-origin”的基本标头。如果该站点的所有者希望能够与任何人共享该 JSON 文件,他们应该将名称从 .json 更改为 .php 并将其添加到其标题中。

header("Access-Control-Allow-Origin: *");
于 2021-02-26T01:50:57.153 回答
0

你不能。

出于安全原因,下载文件必须仅在用户许可的情况下完成。

但是你为什么要这样做呢?服务器读取文件并发送内容或发送文件没有区别(性能)。服务器以两种方式读取文件。

于 2017-02-24T22:13:18.370 回答