javascript – 通过邮件传递对象
我有一个看起来像这样的对象
var obj = {p1:true,p2:true,p3:false}
我希望尝试将此对象作为发布请求的一部分传递。
但另一方面(在PHP中)我得到的只是
[对象]
如何通过邮寄发送对象?
基本上我想要做的是
我有一个隐藏的输入,并像这样创建
这是隐藏forms的一部分。
按下按钮时我有
$(#obj).val(obj); $('form').submit();
请不要使用ajax的建议,因为我必须这样做,因为它是下载动态创建的文件。
在提交之前,您需要将对象序列化/转换为字符串。 你可以使用jQuery.param()
。
$('#obj').val(jQuery.param(obj));
您可以考虑使用JSON表示法将对象发送到服务器。 如果在页面中包含JSON解析器/渲染器 (它现在内置在所有现代浏览器上,并且在标准模式下也是IE8) ,则可以将对象转换为保留其完整对象图形的字符串。 大多数服务器端语言现在都可以使用JSON解析(例如,在PHP中它是json_decode
)。 您可以在发送表单之前将该字符串放在隐藏的表单字段中。
这看起来像这样:
$('#obj').val(JSON.stringify(obj)); $('form').submit();
…并且您的服务器端将在表单中看到一个字符串
{ "p1" : true, "p2" : true, "p3" : false }