默認情況下,bloodhound.js將通過HTTP GET進行查詢,但這會讓您容易受到JSON hijacking的影響。由於我有敏感的信息,我想加載到預先輸入,HTTP GET使我容易受到攻擊。過去有一個選擇帖子的選項(如下所示:typeahead.js remote beforesend post data issue),但這不適用於最新版本(v.0.11.1)。使用HTTP POST和typeahead js和bloodhound js
4
A
回答
8
我花了很多心痛和試驗纔得到這個。在最新版本(v.0.11.1)中有一個transport
函數選項,你可以使用它來委託給你想要的任何東西(websockets,或簡單的舊版本$.ajax
)。
var accountBloodhound = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: '/account/search#%QUERY',
wildcard: '%QUERY',
transport: function (opts, onSuccess, onError) {
var url = opts.url.split("#")[0];
var query = opts.url.split("#")[1];
$.ajax({
url: url,
data: "search=" + query,
type: "POST",
success: onSuccess,
error: onError,
})
}
}
});
$('#remote .typeahead').typeahead(null, {
name: 'best-pictures',
display: 'value',
source: accountBloodhound
}).bind('typeahead:select', function (ev, suggestion) {
console.log('Selection: ' + suggestion);
});
+1
你的心痛已經償清;) –
2
這Link將有助於
var searchAuto = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('word'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: base_url + 'ajax/get_words',
prepare: function (q, rq) {
$(".typeahead-loader").show();
rq.data = {
q: $("#SearchData").val(),
// source: 'S01',
searchtype: $("#Searchtype").val(),
language: $("#language").val(),
author: $("#author").val(),
raag: $("#raag").val(),
page_from: $("#page_from").val(),
page_to: $("#page_to").val()
};
return rq;
},
transport: function (obj, onS, onE) {
$.ajax(obj).done(done).fail(fail).always(always);
function done(data, textStatus, request) {
// Don't forget to fire the callback for Bloodhound
onS(data);
}
function fail(request, textStatus, errorThrown) {
// Don't forget the error callback for Bloodhound
onE(errorThrown);
}
function always() {
$(".typeahead-loader").hide();
}
}
}
});
如果CONSOLE.LOG obj的,即,第一個參數,你會得到
,你可以很容易地覆蓋type
在obj
obj.type = 'POST'
希望這有助於...
相關問題
- 1. Typeahead Bloodhound POST請求
- 2. 如何一次使用Typeahead和Bloodhound使用多個數據集?
- 3. Twitter的typeahead-bloodhound:使用ajax.data和POST時,「%QUERY」的等效含義是什麼?
- 4. Twitter typeahead bloodhound not prefetching
- 5. Typeahead-addresspicker-JS assist
- 6. 使用ng-token-auth與typeahead/bloodhound
- 7. 使用PHP中JS的$ redirectlocation和。$ _ POST
- 8. Angular JS UI Bootstrap Typeahead
- 9. Bloodhound typeahead undefined in console laravel
- 10. typeahead bloodhound自定義標題
- 11. 角JS $ HTTP POST與laravel
- 12. Angular JS HTTP Post不工作
- 13. Symfony 2 Angular JS HTTP POST
- 14. 如何在加載npm時引用typeahead和bloodhound typehead.js
- 15. twitter typeahead js 100%寬度
- 16. 在Phantom JS腳本中調用Http Post
- 17. JS和CSS,HTTP和HTTPS的規範URL
- 18. Twitter Typeahead - 打字稿中的Bloodhound錯誤
- 19. 使用Backbone js Node js和MySQL?
- 20. JS DOM和引導:用JS
- 21. symfony2.7,bloodhound,typeahead不顯示自動完成
- 22. 發送和使用HTTP POST
- 23. typeahead in angular js not working
- 24. Cocoon JS和Kinetic JS
- 25. typeahead/bloodhound與多個遠程數據源
- 26. Twitter typeahead 0.1 w/bloodhound - 無法使用URL預取工作
- 27. 使用Typeahead和Bloodhound時如何在請求主體中發送數據?
- 28. 如何使用Bloodhound獲得Typeahead以使用JSON響應?
- 29. Jquery Typeahead Bloodhound無法正常工作
- 30. 如何使用角度js和節點js將數組POST到MongoDB
https://stackoverflow.com/a/46927923/3966458沒有Ajax –