javascript - 将各种类型的对象作为 AJAX post 请求传递?

标签 javascript php jquery ajax laravel

在我的页面上,我有一个由用户填写的输入

然后,在我的 JS 中,我有一个对象,如下所示:

var obj = {
    sort: 'newest',
    num: 10,
    values: [1, 2, 3, 4]
};

如您所见,该对象包含各种类型(字符串、整数和数组)。我需要在发布请求下将输入值和对象的数据传递给Laravel使用原始类型(即字符串、整数、数组)。

但目前,所有数据都作为字符串传递:

/image/y6NGU.png

这是我当前的代码:

$('form').on('submit', function (event)
{
    event.preventDefault();

    var form = $(this);

    var data = form.serializeArray();

    $.each(obj, function (key, val)
    {
        data.push({ name: key, value: val });
    });

    $.ajax({
        url: 'https://website.com/save',
        type: 'post',
        data: data,
        dataType: 'json',
        success: function (data)
        {
            //
        }
    });
});

我应该更改什么才能将数据作为各自的类型传递?

最佳答案

您必须像下面这样更改 jQuery 代码:

var obj = {
  sort: 'newest',
  num: 10,
  values: [1, 2, 3, 4]
};

$.ajax({
  url: 'https://example.com/save',
  type: 'post',
  data: $.param(obj), //will become e.g. sort='newest'&num=10&etc..
  contentType: "application/x-www-form-urlencoded; charset=UTF-8", // this is the default value, so it's optional
  dataType: 'json',
  success: function (data)
  {
    //
  }
});

关于javascript - 将各种类型的对象作为 AJAX post 请求传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48696463/

相关文章:

javascript - 检查是否有多个具有相同值的输入字段

javascript - 将变量传递给 JQuery 提交函数?

javascript - 在代码隐藏中读取由 javascript 操作的列表的值

php - 极慢的锂查询,在 MongoDB 中很快

jquery - 搜索 HTML 表格

jquery - 片段 - 淡入然后淡出

javascript - 有没有一种方法可以结合 Bluebird 的 `then` 和 `catch` 功能?

javascript - ( typescript )不在类实例的子属性上调用 Setter

php - 在 PHP 中创建一个空的二维数组?

php - MongoDB 在文件保存时导致 PHP 崩溃,500 错误;可以毫无问题地检索保存的文件