Javascript 使用$.getJSON()我可以';在任何版本的IE中都不会收到结果。Firefox/Chrome工作正常

Javascript 使用$.getJSON()我可以';在任何版本的IE中都不会收到结果。Firefox/Chrome工作正常,javascript,jquery,json,https,html-parsing,Javascript,Jquery,Json,Https,Html Parsing,问题是,我无法检索我正在安全服务器上访问的.json文件的结果,但这仅在使用IE的任何版本时发生 Firefox和Chrome运行良好,在检索数据时没有控制台错误报告 由于这只是一个IE问题,我想知道检索.json文件的最佳方法,这样我就可以解析接收到的数据的内容。想法 代码如下: AFD测试 $(文档).ready(函数(){ $.getJSON('https://www.inquicker.com/facility/americas-family-doctors.json', 功能(数据

问题是,我无法检索我正在安全服务器上访问的
.json文件的结果,但这仅在使用IE的任何版本时发生

Firefox和Chrome运行良好,在检索数据时没有控制台错误报告

由于这只是一个IE问题,我想知道检索
.json文件
的最佳方法,这样我就可以解析接收到的数据的内容。想法

代码如下:


AFD测试
$(文档).ready(函数(){
$.getJSON('https://www.inquicker.com/facility/americas-family-doctors.json',
功能(数据){
var最早={};
var-doctor={};
var-links={};
$.each(data.schedules,function(i,name){
var location=name.name.split('-')[0];
var dr_name=name.name.split('-')[1];
if(名称可用×长度){
如果(最早的位置){//位置已存储。
var newTime=parseAvailableDate(name.available\u次[0]。何时);
if(newTime.isBefore(最早的[位置]){
最早[地点]=新时间;
医生[所在地]=医生姓名;
链接[位置]=名称。可用时间[0]。url;
}                    
}
否则{
最早的[location]=parseAvailableDate(name.available\u次[0]。何时);
医生[所在地]=医生姓名;
链接[位置]=名称。可用时间[0]。url;
}
}
});
displayDetailsBrentwood(“Brentwood”,最早的,医生,链接);
displayDetailsSmyrna(“士麦那”,最早的,医生,链接);
displayDetailsSpring(“春山”,最早,医生,链接);
});
});
函数parseAvailableDate(日期字符串){
var trimmedString=dateString.replace(/^\s\s*/,“”);
var avTime=trimmedString.split(“”)[0],
ampm=trimmedString.split(“”)[1],
avDay=trimmedString.split(“”)[2];
var avDate=Date.parse(“下一个”+avDay);
avDate.addHours(avTime.split(“:”)[0]).addMinutes(avTime.split(“:”)[1]);
如果(ampm==“pm”&&avTime.split(“:”)[0]!=“12”)avDate.addHours(12);
返回日期;
}
功能显示DetailsRentwood(位置、最早、医生、链接){
$(“#brentwood”)。追加(“
    ”); } 函数displayDetailsSmyrna(位置、最早、医生、链接){ $(“#士麦那”)。追加(“
      ”); } 功能显示详情弹簧(位置、最早、医生、链接){ $(“斯普林山”)。追加(“
        ”); }

              您的测试网页看起来不错,只是缺少用于字符编码的
              元标记

              修订的标题部分:

              <!doctype html>
              <html>
              <head>
              <meta http-equiv="content-type" content="text/html; charset=UTF-8">
              <title>AFD TEST</title>
              
              
              AFD测试
              
              没有报告其他错误,所以让我们找出脚本的错误


              参考文献1:

              上述
              .getJSON()
              URL使用的是
              https
              ,当直接从IE8地址栏访问该URL时,它将失败并显示警告消息。这在Firefox或Chrome中不会发生,后者将JSON文件显示为文本

              这意味着您的脚本在与IE浏览器一起使用时也会失败,直到可以通过地址栏访问JSON文件,就像访问Firefox和Chrome一样

              注意:对于IE,我可以使用
              http
              访问您的JSON文件,但只能作为下载选项。这适用于URL的所有IE版本

              话虽如此,我不确定这是否是所有IE浏览器中的标准行为,因此我寻找另一个安全JSON文件在IE8中进行测试

              参考文献2:

              这个新的参考URL经过测试,在IE浏览器中没有发现任何问题,数据很容易被视为文本。旁注:此文件上的SSL为128位,而您的为256位

              底线:由于您不需要执行这样的注册表黑客操作,因此简单的解决方案是调整服务器设置以允许JSON文件类型显示在浏览器中,而不是作为下载

              很有可能您无法更改此服务器设置出于安全原因不想更改,因此需要另一种解决方案

              使用数据刮取方法

              使用
              .ajax()
              方法以及将使用
              https
              检索任何版本的IE的JSON文件

              要查看脚本将收到的结果,请为此使用YQL Developer Online工具。在树状视图中查看结果可以查看网页结构,这对于在脚本中创建指向该位置的直接路径非常有用

              例如:

              例如:

              对于以上两个示例,请按JSON单选按钮,然后按树按钮查看结果。获得结果后,展开树中的
              results
              节点,直到看到数据

              然后,要查看此YQL语句在脚本中的作用,请在IE中查看此在线演示,它以转义形式使用了该语句的大部分内容。转义表单非常独特,可通过按下
              permalink按钮
              (长链接)获得。只有当您使用非常长/复杂的XPATH时,您才会注意到这个YQL转义代码是多么独特,因为它实际上可能在战略位置包含单引号

              注意:控制台.log
              消息在IE中的作用最小,但因为它们