<form name="input" action="">
<input type="text" name="say" />
<input type="submit" value="send" />
</form>
我想通过网络套接字发送这种形式的数据到服务器,我使用的是socket.io。如何通过websocket传递表单数据? (socket.io)
达到此目的的最佳方法是什么?
<form name="input" action="">
<input type="text" name="say" />
<input type="submit" value="send" />
</form>
我想通过网络套接字发送这种形式的数据到服务器,我使用的是socket.io。如何通过websocket传递表单数据? (socket.io)
达到此目的的最佳方法是什么?
你需要在表格上使用.serialize()像这样:
var formdata = $('form').serialize();
然后传递过的WebSocket。在node.js的一面,你可以通过使用querystring.parse得到一个JS对象返回:
var querystring = require('querystring');
// Data is the data received from the client
var result = querystring.parse(data);
这个文件上传工作吗? – 2017-12-29 11:04:50
你可以试试这个
function getFormData2Object(form){
var un_array = form.serializeArray();
var _array = {};
$.map(un_array, function(n, i){
if(n.name.indexOf('[') > -1){
var array = n.name.match(/\[(.*?)\]/);
var key = n.name.replace(array[1],"").replace('[',"").replace(']',"");
if(!_array[key]){
_array[key] = {};
}
_array[key][array[1]] = n['value'];
}else{
_array[n['name']] = n['value'];
}
});
return _array;
}
socket.emit('blablabla', getFormData2Object($("form")));
好运:)
用你的代码添加一些解释,它可以在将来帮助别人。 [回答] – cosmoonot 2017-04-20 06:08:20
为什么这里的WebSocket?这是一个客户端 - 服务器请求,所以正常的http请求会起作用。 – 2011-05-30 02:13:41