我在这里查看了类似的查询,但我似乎无法将它们应用于我的问题。我对jquery很新,所以我可能会做一些愚蠢的事情。 我有一个简单的getJSON测试:
$(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
为什么回调函数不会触发?
答案 0 :(得分:1)
如果单击处理程序附加到锚元素,那么在重定向到其他页面之前,ajax调用可能没有时间执行。尝试在点击回调中添加return false
:
$(".testurl").click(function() {
// do a json call
// ...
return false;
});
答案 1 :(得分:0)
$ .getJSON调用只是分配给一个变量,它没有被调用。