我有一个javascript代码,它将三个值动态传递给JSON进行处理......在讨论了我与同事之前遇到的问题后,他提出将多个变量传递给JSON的最佳方法是将它们定义为javascript中的数组,然后将对象直接传递给ajax / JSON。但是,经过一些试验和错误编码后,JSON处理器似乎无法正确运行该方法。我的问题如下,在以下两个例子中,它们在功能上是相同的,如果是,那么为什么语法会失败。
/* New Syntax: */
var data_id = $(this).data('id');
var data_action = "get";
var column_toact_on = $(this).data('column');
$.ajax({
url: 'xyz.php',
type: 'POST',
data: {id : data_id, action: data_action, column: column},
dataType: 'json',
success: function(data){
alert("Information Passed Correctly");},
error: function(jqXHR, textStatus, errorThrown){
alert(textStatus);}
});
/* old Syntax: */
var dataObj = {};
dataObj["id"] = $(this).data('id');
dataObject["column"] = $(this).data('column');
dataObj["action"] = "get"; // "get" or "set"
$.ajax({
url: 'xyz.php',
type: 'POST',
data: dataObj,
dataType: 'json',
success: function(data){
alert("Information Passed Correctly");},
error: function(jqXHR, textStatus, errorThrown){
alert(textStatus);}
});
答案 0 :(得分:1)
您的非工作代码无效的原因..
var dataObj = {};
dataObj["id"] = $(this).data('id');
dataObject["column"] = $(this).data('column');
dataObj["action"] = "get";
你创建一个对象dataObj - 很好。你在dataObject上分配一个属性(不存在,你的意思是dataObject,但JS解释器不知道),这显然不会起作用。
试试这个。
var dataObj = {};
dataObj["id"] = $(this).data('id');
dataObj["column"] = $(this).data('column');
dataObj["action"] = "get";