在 jQuery 中将 processData 设置为 false 会破坏我的 AJAX 请求

2024-03-28

我已经用谷歌搜索了一段时间,只能找到什么processData: false做。我找不到经历过同样问题的人。

我将 JSON 传递回服务器,并且不希望 jQuery 自动将数据转换为查询字符串,因此我将 processData 设置为 false。如果我取出 processData,我可以看到请求触发,但是一旦我将其放入,我就看不到任何请求(使用 Firebug 和 Chrome 开发工具)。

$.ajax({
            url: myUrl,
            type: "POST",
            data: {foo: "bar"},
            processData: false,
            contentType: 'application/json'
        });

我最初提出的请求比这更复杂一些,但我已经简化了它以尝试缩小问题范围,但这段简单的代码也不起作用(同样,如果我注释掉 processData,它确实起作用)。另外,我在控制台中没有看到任何 JavaScript 错误。

Edit

对于未来的网络搜索者:正如 lonesomeday 所指出的,如果您提供 JS 对象或格式不正确的 JSON 字符串,jQuery 不会抛出任何错误。它根本不会触发请求。


您希望将数据作为 JSON 传递。您正在传递一个 Javascript 对象。 JSON 是一种将 Javascript 对象序列化为字符串的方法,以便它们可以在没有兼容性问题的情况下传递。

您实际上想要在字符串中传递 JSON:

$.ajax({
    url: myUrl,
    type: "POST",
    data: '{"foo": "bar"}',
    processData: false,
    contentType: 'application/json'
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 jQuery 中将 processData 设置为 false 会破坏我的 AJAX 请求 的相关文章

随机推荐