【问题标题】:How to make a FORM PUT request through rxjs ajax?如何通过 rxjs ajax 发出 FORM PUT 请求?
【发布时间】:2017-08-12 07:21:07
【问题描述】:

Jquery 请求对象有一个名为“data”的属性,用于设置表单数据并使用正确的标题发出表单请求。

我想在 rxjs ajax 中实现同样的效果,但找不到方法。 我能找到的唯一详尽的请求配置属性列表是https://github.com/Reactive-Extensions/RxJS-DOM/blob/master/doc/operators/ajax.md

【问题讨论】:

    标签: ajax rxjs5


    【解决方案1】:

    RxJS5 的文档在那部分还没有完成,但是你可以按如下方式使用它:

     import {Observable} from "rxjs/Observable";
     import "rxjs/add/observable/dom/ajax";
    
     const url = "http://my-site.org/some/endpoint";
     const request$ = Observable.ajax.put(url, {a: "test"});
     request$.subscribe(x => console.log(x));
    

    当然所有其他 REST 方法都可用

      Observable.ajax(urlOrRequest: string | AjaxRequest): Observable<AjaxResponse>;
      Observable.ajax.get(url: string, headers?: Object): Observable<AjaxResponse>;
      Observable.ajax.post(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;
      Observable.ajax.put(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;
      Observable.ajax.patch(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;
      Observable.ajax.delete(url: string, headers?: Object): Observable<AjaxResponse>;
      Observable.ajax.getJSON<T>(url: string, headers?: Object): Observable<T>;
    

    如果要发送完全自定义的 ajax-request,可以使用以下接口:

    interface AjaxRequest {
      url?: string;
      body?: any;
      user?: string;
      async?: boolean;
      method?: string;
      headers?: Object;
      timeout?: number;
      password?: string;
      hasContent?: boolean;
      crossDomain?: boolean;
      withCredentials?: boolean;
      createXHR?: () => XMLHttpRequest;
      progressSubscriber?: Subscriber<any>;
      responseType?: string;
    }
    

    全部取自这里:https://github.com/ReactiveX/rxjs/blob/0ab1d3b4d1178a1d31c49c737832cde767da3fb1/src/observable/dom/AjaxObservable.ts

    【讨论】:

      猜你喜欢
      • 2016-11-20
      • 2011-06-13
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 2013-03-26
      • 1970-01-01
      • 2018-07-04
      相关资源
      最近更新 更多