【问题标题】:jQuery getJSON callback can't be a variablejQuery getJSON 回调不能是变量
【发布时间】:2011-09-27 22:47:34
【问题描述】:

我正在尝试创建一个使用 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"

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

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

【问题讨论】:

    标签: jquery getjson jquery-callback


    【解决方案1】:

    你可以只传递一个对象:

    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");
    

    【讨论】:

    • 非常感谢您解决了这个问题。我习惯了 PHP,这对我来说有点新。
    • 没问题。如果您的问题的任何答案有助于解决您的问题,请记得点击旁边的绿色复选标记,将其标记为您问题的解决方案。
    【解决方案2】:

    这个问题与 jQuery 无关。 js对象就是这样工作的,key可以是字符串也可以是字面量,不是变量

    【讨论】:

      【解决方案3】:

      按如下方式构造对象

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

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

      【讨论】:

        猜你喜欢
        • 2023-03-04
        • 1970-01-01
        • 2011-01-17
        • 2011-08-22
        • 1970-01-01
        • 2011-02-18
        • 2018-07-25
        • 2012-02-21
        • 1970-01-01
        相关资源
        最近更新 更多