AJAX / JS语法传递数组,语法错误

时间:2013-04-28 19:08:57

标签: javascript ajax json syntax-error

背景

我有一个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);}
    });

1 个答案:

答案 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";