当前位置: 首页 > 面试题库 >

Rxjs 5-简单的Ajax请求

冯野
2023-03-14
问题内容

我正在尝试从一个简单的ajax请求中获取值,但是我不知道该怎么做。这是代码:

Rx.Observable
  .ajax({ url: 'https://jsonplaceholder.typicode.com/posts', method: 'GET', responseType: 'json' })
  .subscribe(function(data) { return data.response; });

我到处搜索,没有简单的解释。

谢谢!


问题答案:

Observable.ajax可以接受stringObject具有以下界面:

interface AjaxRequest {
  url?: string; // URL of the request
  body?: any;  // The body of the request
  user?: string;
  async?: boolean; // Whether the request is async
  method?: string; // Method of the request, such as GET, POST, PUT,

PATCH, DELETE
headers?: Object; // Optional headers
timeout?: number;
password?: string;
hasContent?: boolean;
crossDomain?: boolean; //true if a cross domain request, else false
withCredentials?: boolean;
createXHR?: () => XMLHttpRequest; //a function to override if you need
to use an alternate XMLHttpRequest implementation
progressSubscriber?: Subscriber ;
responseType?: string;
}



在GitHub上查看AjaxObservable.ts

这是示例

const { Observable, combineLatest } = rxjs; // = require("rxjs")

const { ajax } = rxjs.ajax; // = require("rxjs/ajax")

const { map } = rxjs.operators; // = require("rxjs/operators")



// simple GET request example

const simple$ = ajax('https://httpbin.org/get');



// POST request example

const complex$ = ajax({

  url: 'https://httpbin.org/post',

  method: 'POST',

  headers: {

    'Content-Type': 'application/json',

    'x-rxjs-is': 'Awesome!'

  },

  body: {

    hello: 'World!',

  }

});



const htmlSubscription = combineLatest(simple$, complex$)

  .subscribe(([simple, complex]) => {

    const simpleResponse = JSON.stringify(simple.response, null, 2);

    const complexResponse = JSON.stringify(complex.response, null, 2);

    document.getElementById('root').innerHTML = `

      <div>

        <span><b>GET</b> https://httpbin.org/get</span>

        <pre>${simpleResponse}</pre>



        <span><b>POST</b> https://httpbin.org/post</span>

        <pre>${complexResponse}</pre>

      </div>`;

  });


<script src="https://unpkg.com/rxjs@6.2.2/bundles/rxjs.umd.min.js"></script>

<div id="root">loading ...</div>


 类似资料:
  • 问题内容: 我在Ubuntu16.04上将Symfony3与PhpStorm.2016.3.2一起使用 我之前从未做过AJAX请求,并且想测试从view->到controller->的控制器调用,该调用将答案发送回JSON中的视图。 所以我读了文档,但它们都很具体。因此,我的愿望是只能在视图中编写一个简单的AJAX请求,以便对其进行测试,调用控制器并在视图中返回答案。 这是我的看法: 我的控制器:

  • 问题内容: 我写了非常简单的服务器: 我使用nodejs运行它。 现在我想编写一个简单的客户端,该客户端使用ajax调用将请求发送到服务器并打印响应(Hello World) clinet的javascript: 当我打开客户端html文件时,在控制台中出现以下错误: 我尝试将以下内容添加到ajax调用中: 但后来我明白了 任何人都可以解释我做错了什么,也许如何解决? 非常感谢! 问题答案: 第一

  • 本文向大家介绍非常简单的Ajax请求实例附源码,包括了非常简单的Ajax请求实例附源码的使用技巧和注意事项,需要的朋友参考一下 Ajax不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。通过Ajax,您可以使用 JavaScript的XMLHttpRequest对象来直接与服务器进行通信。您可以在不重载页面的情况与 Web 服务器交换数据。在本文的例子中,我们将演

  • 问题内容: 我正在使用下面的循环+ jQuery在下一组页面中加载,并且在第一次单击时有效,但是当加载下一页并单击“较新的帖子”时,它将重新加载整个页面。有任何想法吗? 问题答案: 您正在使用jQuery的方法插入内容,这是的快捷方式,当然可以动态地插入内容。 动态内容需要将事件委派给非动态父对象,而jQuery可以轻松实现

  • 我对Jmeter非常陌生,正在逐步学习。 尝试在Jmeter和协议选项卡中创建简单的HTTP请求 - 我已经给出了“google.com”。 当我运行这个时,得到如下所述的错误: 响应代码 : 非 HTTP 响应代码 : 网址格式不正确 响应消息:非HTTP响应消息:未知协议:google.com 请帮我克服这个错误,成功通过测试。 最好的问候,戈文达拉扬G

  • 本文向大家介绍Ajax在请求过程中显示进度的简单实现,包括了Ajax在请求过程中显示进度的简单实现的使用技巧和注意事项,需要的朋友参考一下 Ajax在Web应用中使用得越来越频繁。在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击该按钮产生多个并发Ajax请求);调用完成后,图片消失,当前