Javascript 为什么jQueryAjax不在get请求中发送数据

Javascript 为什么jQueryAjax不在get请求中发送数据,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在设置一个页面,我们的员工可以在其中查看应该在货架上的物品列表,然后确认物品是否在那里,或者在出现问题时发送警报 我正试图为每种情况(项目存在、项目不存在、信息不正确)创建一个函数,其中每个函数都会将该情况的正确参数传递给一个通用函数,该函数将发出实际的ajax请求 此功能通过点击按钮触发(当项目存在且正确时),并正确记录数据: function log (rec_id,offset) { console.log("On Shelf \r\nRecord_Id: "+rec_id+"

我正在设置一个页面,我们的员工可以在其中查看应该在货架上的物品列表,然后确认物品是否在那里,或者在出现问题时发送警报

我正试图为每种情况(项目存在、项目不存在、信息不正确)创建一个函数,其中每个函数都会将该情况的正确参数传递给一个通用函数,该函数将发出实际的ajax请求

此功能通过点击按钮触发(当项目存在且正确时),并正确记录数据:

function log (rec_id,offset) {
    console.log("On Shelf \r\nRecord_Id: "+rec_id+"\r\nOffset: "+offset);
    var rdata =[];
    rdata['id'] = rec_id;
    rdata['status'] = 1;
    rdata['branch'] = $("#branch").val();
    rdata['loc_code'] = $("#location_code").val();
    console.log("log function");
    console.log(rdata);

    log_item(rec_id,offset,rdata);      
}
这是输出到日志的内容:

[id: 1833049, status: 1, branch: "1", loc_code: "mnlp"]
log_item函数发出ajax请求

function log_item(rec_id, offset, rdata) {
    console.log("Logging Item: i"+rec_id+"a");
    console.log("log_item function");
    console.log(rdata);
    $.ajax({
        url: 'logItem.php',
        data: rdata
    }).done(function(response){
        console.log(response);
        $("#form").foundation('close');
    });
}
它也正确地记录了数据

[id: 1833049, status: 1, branch: "1", loc_code: "mnlp"]

但当我查看发送的请求时,这些参数并没有在请求中传递。

我认为问题就在这里

var rdata =[];
换成

var rdata ={};

在Ajax请求中指定方法:“POST”是否存在GET无法工作的原因?我编写logItem.php是为了从$\u GET中检索参数?您不能通过GET方法发送json数据,它不应该是对象而不是数组吗?我认为[]不会作为对象传递。@misher jQuery将其转换为查询字符串并将其附加到URL。这就成功了。据我所知,这将它改为对象而不是数组,你知道数组为什么不工作吗?javascript不支持关联数组。数组只能有0,1,2这样的索引(始终为数字)。用于存储键值js has object.@cdm014 jQuery
ajax
函数使用jQuery
param
将数据转换为GET请求的查询字符串:。从文档中可以看到,它支持将数组作为输入类型,但您传入了一个空数组(
length==0
),因此它没有生成任何内容。