обратный вызов jQuery getJSON не может быть переменной - PullRequest
0 голосов
/ 27 сентября 2011

Я пытаюсь создать функцию, которая использует функцию 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"

Я уже пытался избежать этого, но это только приводит к ошибкам.

Что я делаю не так, какие-либо предложения?

Ответы [ 3 ]

0 голосов
/ 27 сентября 2011

Создайте объект следующим образом

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

Синтаксис [] позволяет определять свойства по имени.В этом случае вы присвоите значение callbackVal свойству, которому присвоено значение callbackName

0 голосов
/ 27 сентября 2011

Вы можете просто передать объект:

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");
0 голосов
/ 27 сентября 2011

проблема не имеет ничего общего с jQuery. вот как работают объекты js, ключ может быть строкой или литералом, а не переменной

...