我想将 JSON 表单数据发送到 websocket 服务器,而不是提交表单并重新加载页面。
在 AJAX 中,由于本机FormData() web-api 对象,它非常简单明了:
myform.addEventListener("submit",function(e) {
e.preventDefault();
var xhr = new XMLHttpRequest();
xhr.onload = myFormHandler.bind(xhr);
xhr.open('POST',myform.action,true);
xhr.send(new FormData(myform));
}
最好在 webSockets 中有类似的功能,将表单数据转换为 JSON 对象并像这样使用它:
myWebSocket.omessage = myFormHandler;
myform.addEventListener("submit",function(e) {
e.preventDefault();
myWebSocket.send(JSONformData);
}
但是参考资料(见上面的链接)说 FormData 只有 append 方法,我不知道如何将表单数据发送到 websocket 服务器并在那里提取它们。
在 code.google.com 上,我发现了一些非常接近我需要的东西:form2js,但它无法处理文件(可以使用FileReader.readDataAsURL来完成)。我应该将文件处理功能添加到该代码中,还是有像 FormData 对象这样的本机解决方案?