我想要实现的是将json字符串作为Get方法传递给带有jquery的服务器。发回的内容是html类型。我使用函数.get(“url”,myJson,callback)来完成此任务。
要制作我的json字符串,我会验证一些复选框和文本框以获取其内容,并在需要时在json字符串上添加其id / value。
我使用了一个数组,我添加了我的值:
var array = new Array();
array.push("att_id:"+value);
然后用它来制作json:
var jsonString = "{" + array.join(",") + "}";
但是当我向服务器发出这样的请求时:
$.get(
"localhost/something",
$jsonString,
function(data){
$("#something").html(data);
});
它不起作用,因为它将jsonString作为arraykey和null值传递。 所以我正在寻找一种方法来实现这一目标。
答案 0 :(得分:0)
试试这个(快速修复):
$.get(
"localhost/something",
{theData:array},
function(data){
$("#something").html(data);
}
);
或者,更多的是jQuery的精神(因为你真的想传递一个Javascript键值映射(即一个对象)而不是一个pre-JSON-ified字符串):
var $dataObj = {};
$dataObj["att_id"]=value;
// and then
$.get(
"localhost/something",
$dataObj,
function(data){
$("#something").html(data);
}
);
答案 1 :(得分:0)
您只需使用对象文字构建数据:
var data = {foo: "bar", att_id: value};
$.get(
"localhost/something",
data,
function(data){
$("#something").html(data);
});
答案 2 :(得分:0)
创建json字符串,如下所示。
var data = {};
//Add as many key/values as you want
data["att_id"] = value;
$.get(
"localhost/something",
data,
function(data){
$("#something").html(data);
}
);
答案 3 :(得分:0)
我建议将JSON2 polyfill用于JSON.stringify,并删除数组。
var data= {};
data["att_id"]=value;
$.get(
"localhost/something",
JSON.stringify(data),
function(result){
$("#something").html(result);
}
);