2

我想将 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 对象这样的本机解决方案?

4

0 回答 0