Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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文件时跳过$.ajax函数_Javascript_Arrays_Json_Ajax - Fatal编程技术网

Javascript 尝试导入JSON文件时跳过$.ajax函数

Javascript 尝试导入JSON文件时跳过$.ajax函数,javascript,arrays,json,ajax,Javascript,Arrays,Json,Ajax,1) 如果我尝试在Chrome中以调试模式运行,则会跳过此AJAX函数 2) 当我正常运行它时,AJAX可以工作,我可以将长度为64的数组输出到控制台。但是,在AJAX调用之后,相同的数组变为空,长度变为0 我甚至尝试使用$(document).ready而不是$(“#nextQ”)。单击(function(){ $(“#nextQ”)。单击(函数(){ var报价=[]; var ID=[]; var标签=[]; var=[]; //从JSON文件获取引号 $.ajax({ url:“../f

1) 如果我尝试在Chrome中以调试模式运行,则会跳过此AJAX函数 2) 当我正常运行它时,AJAX可以工作,我可以将长度为64的数组输出到控制台。但是,在AJAX调用之后,相同的数组变为空,长度变为0

我甚至尝试使用
$(document).ready
而不是
$(“#nextQ”)。单击(function(){

$(“#nextQ”)。单击(函数(){
var报价=[];
var ID=[];
var标签=[];
var=[];
//从JSON文件获取引号
$.ajax({
url:“../facts.json”,
数据类型:“json”,
键入:“get”,
成功:功能(数据){
控制台日志(数据);
log(“成功导入JSON文件”);
console.log(data.length);//用于返回64
totalQ=data.length;
对于(i=0;i
尝试更换:

datatype: 'json',
与:


别忘了javascript是一种区分大小写的编程语言。你也可以尝试在AJAX调用中添加一个错误处理程序,看看它是否因为某种原因被调用。例如,如果远程端点返回一些无法解析的无效JSON,你将得到一个错误。

我会尝试,但我对此表示怀疑,因为它在昨晚起作用了在我没有更改的情况下,您可以使用jQuery规范将其显示为数据类型。您可以在“网络”选项卡中看到AJAX请求吗?服务器返回的状态代码是什么?您还可以尝试为AJAX调用添加一个
error
处理程序,以查看它是否由于某种原因被调用。例如,如果远程端点返回一些无效的JSON无法解析,这就是您将得到的结果。您可以通过导航到相应的url,尝试在浏览器中直接浏览此JSON。可能其中的某些内容已更改,不再可用/有效?哦,您似乎误解了
AJAX
中第一个
A
的含义:-)它代表异步,因此在调用实际完成之前尝试读取异步调用的响应显然会失败。我只是想知道为什么他在他的
$.ajax
调用之外声明了一些数组变量。现在一切都清楚了。您在
$.ajax
调用之外声明了它们,然后尝试了若要在此
$.ajax
之后读取它们的值,请在成功回调中声明并使用这些变量时调用。您应该编写
$.ajax(…).done(…).fail(…)
正如您阅读的指南中所建议的那样。在
done
success
回调中,您应该使用从AJAX调用返回的结果。当您单击#nextQ是什么时,数组初始化为空并进行AJAX调用。由于这是一个AJAX调用,您不知道它何时返回,因此无法保证调用会成功。您应该添加一个错误回调,并使用浏览器开发工具的“网络”选项卡调试调用。我同意它可能没有运行success属性,因为它失败了,但它昨晚工作正常,这就是我被难倒的原因。有关如何实现fai的详细信息,请参阅l回调。并使用开发人员工具检查AJAX调用--可以在那里找到错误。事实上,它昨晚运行,没有任何更改,这只表明服务器/网络/远程文件存在问题。记住AJAX是关于调用外部资源的,所以您需要担心的不仅仅是您的代码。
datatype: 'json',
dataType: 'json',