2017-06-02 46 views
1

我使用rx.DOM.ajaxhttps://github.com/Reactive-Extensions/RxJS-DOM/blob/master/doc/operators/ajax.mdrxjs-DOM如何將數據傳遞到POST

我想從使用POST一個url一些數據,但它不返回任何東西。

下面的代碼:

Rx.DOM.ajax({ 
    url: 'src/php/search.php', 
    method: "POST", 
    body: { 
     extra: "Extra" 
    } 
    }); 

如果我print_r($_POST)有什麼也沒有。我期待服務器收到$_POST

+0

我面臨着同樣的問題到底是什麼...... – Tomasz

+0

在我的情況是,我試圖用'GET'方法發送身體,這是行不通的。 – Tomasz

+0

@Tomasz我剛剛與jQuery的ajax:\ –

回答

0

由於rxjs-dom無法正常工作,我找到了另一種方法。

請勿使用rxjs-dom。它可能已過時。我去使用rxjs代替。這是我做的(利用jQuery)。

從我的情況:

var search_bar = $("#search"); 
var textInput = $(search_bar); 
var throttledInput = 
     Rx.Observable.fromEvent(textInput, 'keyup') 
     .pluck('target','value') 
     .filter(function (text) { 
      return text.length > 2; 
     }) 
     .debounceTime(500) 
     .distinctUntilChanged(); 

var suggestions = throttledInput.switchMap(term => term ? this.search(term) : "no term"); 
suggestions.subscribe(
    function (data) 
    { 
    console.log(data) 
    }, 
    function (e) 
    { 
    console.log(e); 
    } 
); 


search(value) 
    { 
    return $.ajax({ 
     type: "get", 
     url: "src/php/search.php", 
     data: { 
     name: value 
     } 
    }).promise(); 
    } 
  • 首先它從我的一個輸入值。

  • 然後它將它變成可觀察值。

  • debounceTime用於防止氾濫的服務器,如果你打字快

  • distinctUntilChange用於所以只有新的結果發送

  • 最後,它可以使用jQuery的,但必須將其轉換回承諾。