我想以json格式提交表单数据,如示例#9 http://darobin.github.io/formic/specs/json/所示。
我的表单如下:
<form id='myform'
enctype='application/json'
action=`http://localhost:8080`
method='post'>
<input type='text' name='textInput'>
<input id='file' type='file' name='file' multiple>
<button>submit</button>
</form>
但不幸的是,当我尝试提交表单时,我发现他们已经按照以下formData发送(它不是JSON,只发送文件名,没有编码文件数据):
textInput:asdasd
file:Screenshot from 2014-10-14 18:10:05.png
file:Screenshot from 2014-10-25 11:25:26.png
我还尝试使用JSON.stringify($("#myform").serializeArray());
将表单字符串化,但结果如下:
"[{"name":"textInput","value":"asdasdasd"}]"
正在丢失文件输入中的数据。
以json的形式发送表单数据的最佳方法是什么?
答案 0 :(得分:1)
由于第一份工作草案是2014年5月,我非常怀疑它是否有任何重要的浏览器支持。
目前,据我所知,发送JSON的唯一两种方法是:
作为标准URI编码形式的一个字段;在服务器上,您获取该字段的值,然后从中读取JSON。您的文件字段将以通常的方式发送。
通过ajax。但要以这种方式发送文件,您必须拥有modern browser(您不能使用IE8或9)。
目前,选项#1可能是您的最佳选择。