0

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

我的代码:

$(document).ready(function () {

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

getName("name", "john");

}); 

这导致以下请求 URL:

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

我已经尝试过逃避它,但这只会导致错误。

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

4

3 回答 3

0

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

于 2011-09-27T14:12:45.780 回答
0

按以下方式构造对象

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

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

于 2011-09-27T14:12:48.557 回答
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");
于 2011-09-27T14:13:05.487 回答