Javascript getJSON回调没有发生
我在这里看过类似的查询,但我似乎无法将它们应用于我的问题。我对jquery非常陌生,所以我可能在做一些愚蠢的事情。 我有一个简单的getJSON测试:Javascript getJSON回调没有发生,javascript,jquery,callback,getjson,Javascript,Jquery,Callback,Getjson,我在这里看过类似的查询,但我似乎无法将它们应用于我的问题。我对jquery非常陌生,所以我可能在做一些愚蠢的事情。 我有一个简单的getJSON测试: $(document).ready(function() { $(".testurl").click(function() { // do a json call var url="testjson.php"; var rc=$.getJSON( url, {parm1: "P1", parm2: "P2"
$(document).ready(function() {
$(".testurl").click(function() {
// do a json call
var url="testjson.php";
var rc=$.getJSON(
url,
{parm1: "P1", parm2: "P2", parm3: "P3"},
function(data){
alert("callback function inline");
});
var x = 1;
});
});
这需要一个非常简单的脚本:
header("Content-Type: application/json");
echo "{\"results\": [";
$arr = array();
$arr[] = "{\"fld1\": \"result1\", \"fld2\": \"result2\", \"fld3\": \"result3\"}";
echo implode(", ", $arr);
echo "]}";
返回有效的JSON(我检查了JSON lint)
我用于接收请求结果的var rc具有以下值:
getResponseText \"{\"results\": [{\"fld1\": \"result1\", \"fld2\": \"result2\", \"fld3\": \"result3\"}]}\""
getReadyState 4
getStatus 200
为什么不启动回调函数?如果单击处理程序附加到锚元素,那么ajax调用在重定向到其他页面之前可能没有时间执行。尝试将
return false
添加到单击回调:
$(".testurl").click(function() {
// do a json call
// ...
return false;
});
$.getJSON调用只是分配给一个变量,没有调用它 我把它赋给一个变量,只是为了看看结果是什么。当我删除赋值时,函数仍然不会触发。锚元素的href为#,因此它保留在页面上。我只是将这个元素作为一个基本的测试页面附加到这个JSON元素上,我添加了returnfalse,并触发了回调。真奇怪,我原以为锚定链接会让通话完成。非常感谢。