在我的页面上,我有一个由用户填写的输入
。
然后,在我的 JS 中,我有一个对象,如下所示:
var obj = {
sort: 'newest',
num: 10,
values: [1, 2, 3, 4]
};
如您所见,该对象包含各种类型(字符串、整数和数组)。我需要在发布请求下将输入
值和对象的数据传递给Laravel使用原始类型(即字符串、整数、数组)。
但目前,所有数据都作为字符串传递:
这是我当前的代码:
$('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/