Jquery模仿表单提交(JSON转多部分表单)

3

我想模拟表单提交,实现类似以下功能:

    $.ajax({
    url:url,
        type: "PUT",
    async:true,
    cache:false,
    data:
    {'end':end,'duration':duration}
    }

然而,data参数只接受字符串类型的数据,并且serialize()函数只有在已经存在表单时才能使用。

是否有办法将JSON数组解析为数据字符串?(多部分表单)


你好,你可以在这里查看被接受的答案:https://dev59.com/T3VC5IYBdhLWcg3ww0Hr - mamoo
嗨!感谢您的快速回复。我不需要将它作为请求实体以表单格式放置,包括分隔符等吗?谢谢。 - Edison
1个回答

2
你认为为什么只需要一个字符串?你是想模仿一个真实的PUT请求,将两个变量endduration放入其中,还是想要PUT一个JSON字符串?

data Object、String
要发送到服务器的数据。如果不是字符串,则转换为查询字符串。对于GET请求,它会被附加在url后面。请参阅processData选项以防止此自动处理。对象必须是键/值对。如果值是数组,则jQuery根据传统设置(下面描述)基于同一键序列化多个值。

这里有一个使用POST方法的jsfiddle演示,可以证明它可以工作:
http://jsfiddle.net/Hqgbj/ 以下是firebug的屏幕截图:
http://cl.ly/253g1f3g032t1a381l0u

谢谢。我想将它作为多部分表单数据。 - Edison
谢谢。实际上是一个服务器错误,我的服务器代码在接收PUT命令时没有查找$ _POST。 - Edison
1
在PHP中,您无法从$_POST中读取PUT的数据。您需要读取php://input。以下是一个示例,您可以执行以下操作:parse_str(file_get_contents("php://input"),$post_vars);将PUT数据转储到名为$post_vars的数组中。 - sberry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接