使用https://github.com/dcodeIO/ProtoBuf.js/我将要发送到java服务器的消息编码为名为batch的ByteBuffer:
batch:
ByteBuffer {array: ArrayBuffer, view: DataView, offset: 0, markedOffset: -1, length: 139…}
array: ArrayBuffer
length: 139
littleEndian: false
markedOffset: -1
offset: 0
view: DataView
__proto__: Object
Run Code Online (Sandbox Code Playgroud)
现在我想用jquery的Ajax发送它:
$.ajax({
url: myUrl,
type: 'POST',
data : batch,
contentType: 'application/protobuf',
accept: 'application/json'
})
Run Code Online (Sandbox Code Playgroud)
但我似乎无法做到这一点.上面的代码给了我jquery异常:
Uncaught TypeError: Cannot set property 'littleEndian' of undefined myScript.js:1353
ByteBuffer.LE bunk.js:1353
jQuery.param.add jquery.js:7203
buildParams jquery.js:7261
jQuery.param jquery.js:7223
jQuery.extend.ajax
Run Code Online (Sandbox Code Playgroud)
如果我从批处理(batch.toArrayBuffer())获得数组缓冲区,Java服务器什么也得不到
ByteStreams.toByteArray(req.getInputStream());
Run Code Online (Sandbox Code Playgroud)
我应该如何编码ByteBuffer来发送这样的?我应该如何将其解码为java字节数组?
我试图提高我的web-dev工作技能,但是jQuery的拖放功能有点让人失望.不幸的是,我无法得到droppable的"drop"或"over"事件.
我不想使用jQuery表拖放插件,所以我在td结构的div中有多个div(全部在$(document).ready中生成).中间div是可放置的,而最里面的div是可拖动的.生成的HTML如下所示:
<td class="vertical">
<div id="droppable3" class="droppable ui-droppable" style="width: 100%; height: 100%;"
over="function () { alert("working!"); }"
drop="function (event, ui) {
debugger;
var firstDrag = ui.draggable;
var secondDrag = $(this).childNodes[0];
var destDrop = $(this);
var sourceDrop = firstDrag.parent;
$("#middle").append("first drag:" + firstDrag.id + "\nSecondDrag:" + secondDrag.id
+ "\ndest Drop:" + destDrop.id + "\nsourceDrop:" + sourceDrop.id); }">
<div id="draggable3" class="draggable ui-draggable"
style="width: 100%; height: 100%;">
</div>
</div>
</td>
Run Code Online (Sandbox Code Playgroud)
除了ID之外,它在其他TD中完全相同.
拖拉似乎工作得很好; 我可以拖出那个内部div,如果我不把它放在一个合适的droppable上,或者只是坚持在那里,如果我这样做,但它永远不会触发"over"或"drop"事件.该代码中的调试器行永远不会被命中.
这是我如何设置draggable/droppable:
function getTD(claz){
var td = jQuery("<td/>",{'class': claz});
var droppable …Run Code Online (Sandbox Code Playgroud)