【问题标题】:rxjs-dom how to pass data into POSTrxjs-dom 如何将数据传递到 POST
【发布时间】:2017-11-03 08:54:09
【问题描述】:

我正在使用rx.DOM.ajaxhttps://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

【问题讨论】:

  • 我也面临同样的问题……
  • 在我的情况下,我试图用 'GET' 方法发送正文,但这是行不通的。
  • @Tomasz 我刚刚使用了 jquery 的 ajax :\

标签: javascript php ajax rxjs rxjs-dom


【解决方案1】:

由于 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。

【讨论】:

    猜你喜欢
    • 2019-06-29
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 2018-01-06
    • 2019-04-05
    • 2023-01-05
    相关资源
    最近更新 更多