-1
- 我使用預輸入/警犬的搜索字段在我的手機應用程序(類固醇/科爾多瓦)
- 從我的應用程序的每個請求API需要簽名和簽名加權威性頭
顯然設置在阿賈克斯設置標題爲每個請求警犬發送將會有所不同,需要不同的簽名將無法正常工作。
在我的第一個實現中,我使用了beforeSend
ajax設置來實現此目的。只需在該函數中計算簽名並將其添加到請求標頭。
但是,這並不是非常安全,所以我決定將所使用的祕密和簽名計算放入Cordova自定義插件的本機代碼中進行編譯。不是防彈的,但有合理的安全性。
由於科爾多瓦插件是異步的,因此beforeSend
在這種情況下變得無用。該功能將在標題的簽名和設置完成之前完成。
因此,總之,問題是:我如何異步計算並設置這些標頭的typeahead/bloodhound?
[這是一個類似的問題](http://stackoverflow.com/questions/20453862/jquery-deferred-方法-一個ND-Ajax的beforesend)。儘管沒有任何人提供任何有用的。在我的情況下,我並不特別關心解決方案的可能性(ajax或者bloodhound),只是一些可行的解決方案。這將是如此簡單,如果beforeSend可以只是返回一個承諾:/ –
[another](http://stackoverflow.com/questions/13943196/how-to-properly-utilize-jquery-deferred-promise-on-auto-invoked -function-例如-AS)。在那裏有一個被接受的答案,但它的內容大致如同哈克一樣。我認爲我寧願分叉和攻擊bloodhound,然後把這個解決方法放在我的代碼中:/它也似乎是不可能在ajax選項中做的,所以如果typeahead支持除了向下投票之外沒有其他答案,看起來像這必須是一個獵犬。我很後悔使用打字機/獵頭的決定。 –