我似乎无法获得正确使用POST的远程查询.
var creditors = new Bloodhound({
datumTokenizer: function (d) {
return Bloodhound.tokenizers.whitespace(d.value)
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: "../getCreditors",
replace: function(url, query) {
return url + "#" + query;
},
ajax : {
type: "POST",
data: $.param({q: queryInput.val()})
}
}
});
Run Code Online (Sandbox Code Playgroud)
queryInput.val()只获取对象的当前值,而不是实例化bloodhound对象时的值.如何将查询字符串放入ajax数据选项中?
据称MandrillApp API 使用mime类型发送JSON编码的消息数组application/x-www-form-urlencoded.
我遇到的问题是收到的数据如下:
mandrill_events=%5B%7B%22event%22%3A%22send%22
%2C%22msg%22%3A%7B%22ts%22%3A136510999...etc
Run Code Online (Sandbox Code Playgroud)
网址解码是:
mandrill_events=[{"event":"send","msg":{
"ts":1365109999,"subject"...etc
Run Code Online (Sandbox Code Playgroud)
我尝试将此字符串反序列化为表示JSON数据的类,但JSON.NET反序列化器会发出错误.
码
m = JsonConvert.DeserializeObject<MandrillEvents>(s);
Run Code Online (Sandbox Code Playgroud)
例外
解析值时遇到意外的字符:m.路径'',第0行,第0位.
根据我的想法,我认为mandrill_events=字符串的部分无效.
我试图为10或16字节的字符串创建一个哈希.这些字符串是以太网mac地址+ ip地址(6 + 4字节)或只是ipv6 ip(16字节).
理想情况下,我想保留蛋糕并吃掉它.绝对最小碰撞将是优先事项.散列长度必须小于16个字节并且相当快.<O(n ^ 2)
知道我应该从哪里开始吗?