Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从不同域上没有标题的JSON文件中获取数据?_Javascript_Json_Xml_Xmlhttprequest_Cross Domain - Fatal编程技术网

Javascript 如何从不同域上没有标题的JSON文件中获取数据?

Javascript 如何从不同域上没有标题的JSON文件中获取数据?,javascript,json,xml,xmlhttprequest,cross-domain,Javascript,Json,Xml,Xmlhttprequest,Cross Domain,我正在尝试从中获取数据。它不在我的域中,我无法获取数据。chrome给出的错误如下:有人可以查看我的代码并给我一些提示吗 其次,我只是使用链接使用失眠,并且能够使用.0.Ed0320美元获得我想要的特定数据点。如何将其转换为JavaScript 我尝试过使用xmlHttpRequest 以下是JSON: [ { "Ed0320": "8.010886", "TmStamp": "2019-08-07 15:15:00", "Ed0340": "21.15973",

我正在尝试从中获取数据。它不在我的域中,我无法获取数据。chrome给出的错误如下:有人可以查看我的代码并给我一些提示吗

其次,我只是使用链接使用失眠,并且能够使用.0.Ed0320美元获得我想要的特定数据点。如何将其转换为JavaScript

我尝试过使用xmlHttpRequest

以下是JSON:

[
  {
    "Ed0320": "8.010886",
    "TmStamp": "2019-08-07 15:15:00",
    "Ed0340": "21.15973",
    "Ed0305": "0.2966875",
    "Ed0313": "3.344086"
  },
  {
    "Ed0320": "6.761719",
    "TmStamp": "2019-08-07 15:10:00",
    "Ed0340": "17.47292",
    "Ed0305": "0.2349026",
    "Ed0313": "2.789934"
  }
]
以下是我的XML:

function reqListener() {
     // parse the the data
     var data = JSON.parse(this.responseText)
     // create an array from the required data (result.Stats -> watch the capital 'S')
     var mappedData = data[0];
     // display data
     document.getElementById('demo').innerHTML = mappedData.join()
}
function loadData(url) {
     var oReq = new XMLHttpRequest();
     oReq.addEventListener("load", reqListener);
     oReq.open("GET", url);
     oReq.send();
}
Chrome给出了从源“null”访问XMLHttpRequest的错误,CORS策略已阻止该错误:跨源请求仅支持协议方案:http、数据、Chrome、Chrome扩展、https

另外,我想根据下面的函数更改url。有没有办法将其输入到fetch中

function changeText(){
                var d = new Date();
                var year = d.getFullYear();
                var month = d.getMonth() + 1;
                var day = d.getDate();
                if (month <= 9){
                    month = '0'+month;
                }
                if (day <= 9){
                    day = '0'+day;
                }
                var dateTotal = year + month + day;
                url = "https://cors-escape.herokuapp.com/https://tepfsail50.execute-api.us-west-2.amazonaws.com/v1/report/metguv?rptdate=" + dateTotal;
                console.log(url);
            }


提前感谢您的帮助。这一切我都是新手。

1。获取数据 我不太确定,你想实现什么,但这里有一个片段,那就是

向cors-anywhere.herokuapp.com发出请求,以代理目标URL的查询

从查询的URL返回一个承诺,因此我们可以等待它在代码的其他部分得到解析

过滤并映射结果数据-我不知道您希望从结果数组中获取哪些数据,以及您希望如何处理这些数据

//自调用函数将等待包装在 //异步函数,因此等待不是顶级的 异步函数{ //等待返回的承诺得到解决 //如果将console.log作为数据常量,则 //请确保您使用的是JSON格式的完整数据集 //从简单调用AWS URL得到 const data=等待获取URL //筛选数组中键为Ed0320的对象 const filtered=data.filtere=>e的类型['Ed0320']!==未定义 //从数组映射所有Ed0320的值 const mapped=data.mape=>e['Ed0320'] //简单的输出,因此您可以检查值 console.logfiltered; console.logmapped }; //使用cors anywhere获取请求 函数fetchURL{ //正在创建要调用的URL: //第一部分是cors anywhere,第二部分是 //要查询的真实URL 常量url=https://cors-anywhere.herokuapp.com/https://tepfsail50.execute-api.us-west-2.amazonaws.com/v1/report/metguv?rptdate=20190807' //返回承诺,因为fetch是异步的 //函数,所以不能立即解决 返回新的PromiseSolve,拒绝=>{ //使用fetch而不是XMLHttpRequest //fetch返回一个承诺,以便您可以使用。然后 //.抓住它 获取URL .thenr=>{ resolver.json } .catcherr=>{ 拒绝者 } }
}嗨!现在已经很晚了,所以我明天只能更彻底地看一看。但是我有一个问题:你能从AWS链接中获取数据,并且只解析它有问题吗,或者你甚至不能用JavaScript获取数据?我用第二个片段编辑了我的答案,我删除了旧的注释并添加了新的注释,感谢回复。我需要得到最新的数据集,这是第一个条目,我需要把这些数据点输入到一个等式中。我将函数加载到原始问题中,非常感谢。你在我的两个问题上都帮了大忙。如果我能帮上忙,我很高兴。我将如何在Promise功能中使用多个链接?我还有一个项目,我有7个URL,我需要使用CORS来获取JSON数据,这取决于你想如何使用你的数据。如果接收这些数据的顺序不起作用,那么可以使用Promise.all。如果希望按特定顺序获取它们,那么可以在循环中使用异步等待语法。
function changeText(){
                var d = new Date();
                var year = d.getFullYear();
                var month = d.getMonth() + 1;
                var day = d.getDate();
                if (month <= 9){
                    month = '0'+month;
                }
                if (day <= 9){
                    day = '0'+day;
                }
                var dateTotal = year + month + day;
                url = "https://cors-escape.herokuapp.com/https://tepfsail50.execute-api.us-west-2.amazonaws.com/v1/report/metguv?rptdate=" + dateTotal;
                console.log(url);
            }