jQuery getJSON回调不能是变量

时间:2011-09-27 14:08:50

标签: jquery getjson jquery-callback

我正在尝试创建一个使用jQuery函数getJSON的函数,但我遇到了问题。回调的第一部分不能变量,jQuery总是把它解释为字符串。

我的代码:

$(document).ready(function () {

function getName(callbackName, callbackVal){
    $.getJSON("json_server.php",{callbackName:callbackVal}, function(result){
    //Do stuff
    });
}

getName("name", "john");

}); 

这导致以下请求网址:

".../json_server.php?callbackName=john" 
instead of 
".../json_server.php?name=john"

我已经尝试转义它,但这只会导致错误。

我做错了什么,有什么建议吗?

3 个答案:

答案 0 :(得分:0)

问题与jQuery无关。这就是js对象的工作原理,键可以是字符串或文字,而不是变量

答案 1 :(得分:0)

按以下方式构建对象

var x = {}
x[callbackName] = callbackVal;
$.getJSON("json_server.php",x, function(result){
    //Do stuff
    });

[]语法允许您按名称定义属性。在这种情况下,您将callbackVal的值分配给名为callbackName的值的属性

答案 2 :(得分:0)

你可以传递一个对象:

function getName(data){
    $.getJSON("json_server.php",data, function(result){
    //Do stuff
    });
}
getName({"name": "john"});

或者在这样的函数中构建它:

function getName(callbackName, callbackVal){
    var data = {};
    data[callbackName] = callbackVal;
    $.getJSON("json_server.php",data, function(result){
    //Do stuff
    });
}
getName("name", "john");