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 に答える