ajax - Javascript (jQuery) 发布到 PHP,未解析空属性

标签 ajax jquery

我有一个 javascript 对象,声明如下:

var myObject = {"a":{"b": "c", "d": "e"}, "f":{"g":{}, "h":{}}};

我正在使用 jQuery

$.post(url, myObject, function(){});

将数据发送到我的 php 文件。由于某种原因,空属性没有被传递,因此,由于“g”和“h”为空,甚至“f”也没有在帖子中传递。

有什么方法可以包含它们而不用虚假数据填充它吗?

谢谢

最佳答案

我认为你的问题不在于 JavaScript。当你像这样调用“$.post()”时,你的对象将被转换成一个HTTP查询形式,相当于“$.param”:

var params = $.param({"a":{"b": "c", "d": "e"}, "f":{"g":{}, "h":{}}});

该字符串看起来像:

a%5Bb%5D=c&a%5Bd%5D=e&f%5Bg%5D=&f%5Bh%5D=

解码后是:

a[b]=c&a[d]=e&f[g]=&f[h]=

<小时/>

编辑——这很奇怪。在内部,jQuery 确实按照我上面写的那样设置参数,但无论出于何种原因 Firefox 正在删除空参数。如果我添加一个“beforeSend”处理程序,很明显参数都在那里,有值的也有没有值的。然而,当实际的 HTTP 请求发出时,它们就消失了。

如果您不介意参数以这种方式传输,您可以将参数附加到 URL。

关于ajax - Javascript (jQuery) 发布到 PHP,未解析空属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8258977/

相关文章:

html - Css 未添加到在 IE 中动态加载的内容

jquery - 如何在jquery中为对话框设置cookie?

javascript - 在 Spring Boot 中,在单击事件期间 Html 页面重定向并使用 Jquery/Thymeleaf 加载下拉组件中的值

javascript - 通过ajax发送字节数组

PHP表单从MYSQL表中删除不删除右侧行

Jquery cookie不会过期

jquery - $(this) 和 event.target 的区别?

javascript 闭包的工作原理

javascript - AJAX 调用后 ReactJS 重新渲染

python - 使用 ajax 间歇性出现 Flask-Login 问题