Jquery 未调用getJSON成功处理程序,且没有错误迹象
发现了与此主题相关的其他几个问题,但它们是人们过早结束AJAX调用的语法错误,而我似乎没有这么做 以下是我在jqGrid loadComplete中的AJAX调用:Jquery 未调用getJSON成功处理程序,且没有错误迹象,jquery,ajax,json,jqgrid,Jquery,Ajax,Json,Jqgrid,发现了与此主题相关的其他几个问题,但它们是人们过早结束AJAX调用的语法错误,而我似乎没有这么做 以下是我在jqGrid loadComplete中的AJAX调用: loadComplete : function() { $.getJSON("getCurrentProject.html", function(results){ alert(results); $(this).jqGrid('setCaption'
loadComplete : function() {
$.getJSON("getCurrentProject.html", function(results){
alert(results);
$(this).jqGrid('setCaption',"Project: " + results);
});
},
如您所见,我只是调用一个URL来获取currentProject字符串,并相应地在jqGrid上设置标题
问题是,永远不会调用success函数!我查看了Firebug,可以看到服务器以我期望的单个字符串值(本例中为“默认值”)响应
我错过了什么?我应该使用get而不是getJSON吗?如果您希望响应实际上是JSON,请仅使用.getJSON()
。在您的情况下,您需要一个字符串,因此请尝试:
loadComplete : function() {
var $this = $(this);
$.get("getCurrentProject.html", function(results){
alert(results);
$this.jqGrid('setCaption',"Project: " + results);
},
"text");
},
您可能不需要.get()
的最后一个参数来将预期类型设置为“text”,但您也可能会这样做-如果您不提供它,jQuery将对响应类型进行“智能猜测”,并且可能猜错
请注意,在ajax回调
中,此
与loadComplete
函数中的不同,因此需要在ajax回调之外的变量中保留对该函数的引用,如图所示。检查ajax lander是否返回有效的JSON(http://jsonlint.com/)并且页面上没有语法错误。如果是这种情况,getJSON可能会以静默方式失败。请参阅。感谢您的指导,我在ajax选项的海洋中迷失了方向!