代码之家  ›  专栏  ›  技术社区  ›  SeanDowney

Jquery通过$.Ajax发布多维数组

  •  2
  • SeanDowney  · 技术社区  · 16 年前

    我试图发布一个ajax调用,就好像它是以下表单元素一样:

    <input type="text" name="data[BlogPost][title]" />
    

    但我一点运气都没有这是我的消息来源:

        $.ajax({
            url: "/add/",
            type: "POST",
            data: ( /* what do I do here */),
            success: function(msg){
                alert(msg);
            }
        });
    

    我尝试过嵌套对象,但这只会生成如下服务器响应: 排列 “数据”=>字符串“[object]”(长度=15)

    这对任何人都没有好处!

    有什么想法吗?

    3 回复  |  直到 16 年前
        1
  •  7
  •   Doug Neiner    16 年前

    只需将字段名放在引号中,还要注意,我正在使用对象文字作为数据参数 {} 与您在问题中遇到的问题相比:

    $.ajax({
        url: "/add/",
        type: "POST",
        data: { 'data[BlogPost][title]':'My New Title'} ,
        success: function(msg){
            alert(msg);
        }
    });
    
        2
  •  0
  •   Tatu Ulmanen    16 年前

    你试过了吗 serialize()

    $.ajax({
        url: "/add/",
        type: "POST",
        data: $('#myForm').serialize(),
        success: function(msg){
            alert(msg);
        }
    });
    

    我不是100%确定它在多维数组上有效,但值得一试。

        3
  •  0
  •   o.k.w    16 年前

    我猜, [..] 方括号不是输入元素名称的有效字符?

    如果我错了,请纠正我。

    更新:哦,好吧,我错了。无论如何都会将此作为“学习”信息留在此处。对于像我这样的人:)