提前输入.js远程发送之前发送帖子数据问题
typeahead.js remote beforesend post data issue
我已经把它发布到typeahead github上了,但我想也许我可以在这里问并找到答案。
我正在尝试使用远程查询作为我们的数据源进行预键入。 为此,我想创建一个 POST 并将我的查询参数放在有效负载中。 当我在 beforeSend 函数中将 settings.type 设置为 POST 时,它可以工作,但是当我设置 settings.data 时,我没有看到调试器中设置的数据,然后在我的示例中,我使用一个简单的 http 服务返回您的有效负载,这也验证了数据未被发送。 在typeahead下面.js使用jQuery 1.9.1,特别是使用它的ajax beforeSend call。 据我所知,查看jQuery ajax api,我正在发送函数之前的typeahead中设置适当的值。
这是我的代码,并在 jsfiddle http://jsfiddle.net/75mCa/2/中运行
$('.autocomplete-es .typeahead').typeahead({
name: 'es-tags',
remote: {
url: 'http://httpbin.org/post',
beforeSend: function (jqXhr, settings) {
console.log('type is initially : ' + settings.type);
console.log('data is initially : ' + settings.data);
settings.type = 'POST';
settings.data = { fields: ['tags.tag'], query: { prefix: { tag: 'emp' } } }
//settings.contentType = 'application/json; charset=utf-8';
console.log('type is now : ' + settings.type);
console.log('data is now : ' + settings.data);
//settings.processData = false;
//settings.traditional = true;
return true;
},
filter: function (data) {
console.log(data.data);
console.log(data.data.fields[0]);
//do actual processing...for now just looking for this not to throw an error
// return data.hits.hits[0].fields.tags.tag;
}
}
});
感谢您的任何帮助,G
我有完全相同的用例(将typehead.js与elasticsearch集成),并遇到了同样的问题。问题最终是jquery中检查您是否有要POST的表单数据的代码行是:
xhr.send( ( s.hasContent && s.data ) || null );
。因此,只需继续s.hasContent=true
beforeSend
,一切正常。
相关文章:
- jQuery 和 Ajax 请求数据问题
- JSON Ajax 数据问题
- 请求.JS和节点.js数据问题
- EasyXDM传递数据问题
- Symfony2:Highchartsbundle数据问题
- Google Analtyics Embedded API - report.数据问题
- D3 JS - 未捕获的类型错误:无法读取未定义的属性“长度” - 似乎与数据问题有关
- 提前输入获取远程数据问题
- 异步加载数据问题 AngularJS 和 Firebase
- 提前输入.js远程发送之前发送帖子数据问题
- 在 HTML 结构中打印 JSON 数据问题
- Morris Donut图表没有数据问题
- 如何修复此本地数据问题?(Chrome扩展、Javascript、jQuery)
- 使用Spring MVC控制器在JQuery Datatable中呈现数据问题
- getJSON警报未返回任何内容-数据问题
- 渲染后挖空JS从视图模型中检索数据问题
- b4jjquery-websockets库发送数据问题
- Javascript数据表填充数据问题(没有返回错误)
- Angular数据问题——不知道如何排除
- 奇怪的jQuery数据()问题-帮助