簡體   English   中英

typeahead.js遠程發送數據前問題

[英]typeahead.js remote beforesend post data issue

我已經把它發布到了預先輸入的 github上,但是我想也許我可以在這里問一下並找到答案。

我正在嘗試使用遠程查詢作為我們的數據源來進行預輸入。 為此,我想創建一個POST並將查詢參數放入有效負載中。 當我在beforeSend函數中將settings.type設置為POST時,它可以工作,但是當我設置settings.data時,我看不到調試器中正在設置的數據,然后在我的示例中,我使用了一個簡單的http服務,該服務返回了有效負載,這也可以驗證數據是否沒有發送。 在typeahead.js下面使用的是jQuery 1.9.1,尤其是使用ajax beforeSend調用。 據我所知,我正在jQuery ajax api中設置typeahead beforeSend函數中的適當值。

這是我的代碼,並在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中用於檢查是否有要發送的表單數據的代碼行是:

xhr.send( ( s.hasContent && s.data ) || null );

......所以先走一步,設置s.hasContent=truebeforeSend和一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM