Ajax Post,参数名称为[]

时间:2016-09-20 08:35:38

标签: javascript jquery ajax forms

我需要将一个AJAX帖子发送到PHP脚本,该脚本期望参数名称为[。]。

我的代码:

$("#form").submit(function () {
   var salutation = $("input[name='salutation ']:checked").val();
   var name = $("#name").val();
   var surename= $("#surename").val();
   var origin = "true";

   var post = jQuery.post(url, {
        salutation: salutation,
        name: name,
        surname: surname,
        origin[Newsletterform]: origin
    });

    post.done(function(data) {
        console.log("webservice-done")
    });
});

问题与origin[Newsletterform]: origin一致。

它告诉我这一行有错误。

如果我删除[DATA]部分并仅使用origin: origin,则会告诉我代码中没有错误。但是我需要用[DATA]部分发送参数。

我无法在PHP脚本中更改某些内容,因为它不是我的,并且不可能在此方面进行更改。

有没有办法用[DATA]发送参数名?

应该像SCRIPT_URL?salutation=salutation&name=name&lastname=lastname&origin[Newsletterform]=true

1 个答案:

答案 0 :(得分:2)

要使用该语法向对象添加属性,可以将其包装在引号中:

var postData = {
    salutation: salutation,
    name: name,
    surname: surname,
    'origin[Newsletterform]': origin
}

var post = $.post(url, postData);

或使用括号表示法:

var postData = {
    salutation: salutation,
    name: name,
    surname: surname
}
postData['origin[Newsletterform]'] = origin;

var post = $.post(url, postData);