javascript - jquery ajax : object in data object

标签 javascript ajax json object

我需要在数据对象中传递一个对象,但它不起作用

我使用我在这个网站上找到的以下函数,非常有用,将表单数据转换为 JSON

$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};

然后我需要将该对象作为子对象传递,但它不起作用。过滤器甚至没有显示在检查器的查询字符串参数中

var filters = $('.filtersForm').serializeObject();

$.ajax({
    type: 'GET',
    data: {script:'search',page:page,filters:filters},
    success: function(data){
    }
});

enter image description here

看看图片中如何缺少“滤镜”

有人可以解释一下为什么我不能传递这样的对象吗?

最佳答案

试试这个:

$.ajax({
  type: 'POST',
  data: JSON.stringify({
    script: 'search',
    page: page,
    filters: filters
  }),
  contentType: 'application/json'
});
  1. 类型GET更改为POST。这将允许您发送请求正文。
  2. 使用内置 JSON 对象对您的 data 参数进行字符串化,将 JS 对象字符串化为 JSON 格式的字符串。 (较旧的浏览器可能没有此内置对象,在这种情况下,请使用 json2.js 添加它)
  3. contentType 设置为 application/json。这基本上表明请求正文是这种类型...这是因为我们刚刚将其字符串化为 JSON。

关于javascript - jquery ajax : object in data object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17600175/

相关文章:

javascript - AJAX get() 数据

json - Swift - 迭代字典数组,同时从每个字典中检索一个值

javascript - 如果 localStorage 为 null,则从 json 文件设置

javascript - 将 for 循环添加到 Google Charts 中的折线图

javascript - 使用 jquery helper 将 $(this) 传递到 CakePHP 样式的脚本中

javascript - HTML 表单的某些部分未通过 POST 发送

json - 如何在 Golang 中解析嵌套 JSON 对象中的嵌套数组?

javascript - 页面上有多种表单,最少的验证功能

javascript - D3 折线图进入bindPopup

javascript - 独立且单独地发送和插入每个类容器值。如何?