rxjs-dom如何将数据传递给POST

时间:2017-06-02 04:00:58

标签: javascript php ajax rxjs rxjs-dom

我正在使用rx.DOM.ajax https://github.com/Reactive-Extensions/RxJS-DOM/blob/master/doc/operators/ajax.md

我正在尝试使用POST从网址获取一些数据,但它不返回任何内容。

以下是代码:

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

如果我print_r($_POST),其中没有任何内容。我期待服务器收到$_POST

1 个答案:

答案 0 :(得分: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,但必须将其转换回承诺。