2

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

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

这是代码:

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

如果我print_r($_POST)什么都没有。我期待服务器收到一个$_POST.

4

1 回答 1

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,但必须将其转换回 promise。

于 2017-06-02T04:25:12.037 回答