控制台消息未显示

时间:2013-04-04 15:51:26

标签: jquery json jsonp

我目前正在使用jQuery JSONP加载csv文件作为图形化的数据源。 这是我的代码:

var query= "http://abc.123.com/somefile.csv"
$.ajax({
     url:query,
     dataType:'jsonp'
}).done(function(msg){
     console.log("done");
     for (vari=0; i<5; i++){
          drwaChart(i);
     }
});

不知何故,控制台没有显示上述代码的“完成”,但会显示“完成”:

var query= "http://abc.123.com/somefile.csv"
$.ajax({
    url:query,
    dataType:'jsonp'
}).done(console.log("done"));

有人能提供有关此问题的一些信息吗?因为我现在还不确定数据是否已加载......

谢谢!

(修正了''拼写错误......我在这里复制代码时输错了...)

2 个答案:

答案 0 :(得分:1)

问题是,您使用'启动数据类型,并使用"将其关闭,这会导致console.log()被解释为string。简单的错误,容易解决:)

正确代码:

var query= "http://abc.123.com/somefile.csv"
$.ajax({
     url:query,
     dataType:'jsonp'
}).done(function(data){ 
     console.log("done");
     for (vari=0; i<5; i++){
          drwaChart(i);
     }
});

答案 1 :(得分:0)

好吧,在你说的第一段代码中

.done(function(msg){console.log("done");....}

console.log命令位于包装函数内部,只有在成功接收到结果时才会执行,否则它不会运行console.log,因为你错误地使用了'json'而不是'json',(使用单引号)你的调用没有成功(在将结果发送回jquery时,你可能在服务器端也有一些错误。)因此,你的.done不会被执行。

但是,在第二个代码中它没有检查成功条件,因为可能你没有包装函数。所以,它运行console.log。使用包装函数检查第二个代码,看看结果是什么。