0

背景

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

1 回答 1

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";
于 2013-04-28T19:13:31.457 回答