首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

如何在原生Node.js发出HTTP请求

本文翻译自How to make HTTP Requests in native Node.js 在较早的文章中,我们了解了使用各种流行的库(例如Axios,Needle等)在Node.js发出HTTP...在这篇简短的文章中,您将了解Node.js本机HTTPS模块,该模块可以在没有任何外部依赖的情况下发出HTTP请求。 由于它是本机模块,因此不需要安装。...您可以通过以下代码访问它: const https = require('https'); GET请求 是一个非常简单的示例,该示例使用HTTP模块的https.get()方法发送GET请求: const...https = require('https'); https.get('https://reqres.in/api/users', (res) => { let data = '';...POST请求发出POST请求,我们必须使用通用的https.request()方法。 没有可用的速记https.post()方法。

4.2K30

跨域(CORS)产生原因分析与解决方案,这一次彻底搞懂它

Cross-origin Resource Sharing 中文名称 “跨域资源共享” 简称 “CORS”,它突破了一个请求在浏览器发出只能在同源的情况下服务器获取数据的限制。...Sec-Fetch-Site 表示的是这个请求是同源还是跨域,由于我们这两个请求都是由 3010 端口发出请求 3011 端口,是不符合同源策略的。...看下浏览器 Console 下的日志信息,根据提示得知原因是 “http://127.0.0.1:3010” 访问 “http://127.0.0.1:3011/api/data” 被 CORS 策略阻止了...预检请求 预检请求是在发送实际的请求之前,客户端会先发送一个 OPTIONS 方法的请求服务器确认,如果通过之后,浏览器才会发起真正的请求,这样可以避免跨域请求对服务器的用户数据造成影响。...预检请求定义 根据 MDN 的文档定义,请求方法为:GET、POST、HEAD,请求头 Content-Type 为:text/plain、multipart/form-data、application

5.4K91

前端:如何处理AJAX请求的重复使用

作者|FloatFlower 翻译|小丑 在开发前端时,我们经常使用AJAX来初始化数据并动态渲染在页面上,但是在遇到一连串的相同数据都要进行请求时,就有可能对同一个API 发出并发请求,然而,因为这些请求是同时发出...我们打开开发者模式就会发现,每个组件API发出请求,因此就产生了10次的并发请求,但是在这种情况下,实际上我们仅需要让一个请求出去,另外9个元件等待这个请求的响应然后重新使用即可。...改进的方法 接下来将讲解要如何实现关于在同一个组件之间唯一指定API请求一次并分配请求,我们会用到这个元件EventTarget,这个元件有点类似Node.js中的EventEmitter,主要就是用于接收事件...); // 请求 URI axios.get(uri).then(response => { // 完成请求之后将请求状态设为...(e); }) } // 当目前指定的 URL 处于请求状态,则不做任何事情 else { // 成功的事件监听器注册

1.5K10

什么是REST API

REST API示例 在你的浏览器中打开以下链接,Open Trivia Database[3]中请求一个随机的计算机问题: https://opentdb.com/api.php?...其中包括: 「客户服务器分离模式」(Client-Server):系统A系统B托管的URL发出HTTP请求,并返回一个响应。这与浏览器的工作方式相同。...Hello World示例 下面的Node.js代码使用Express框架创建了一个RESTful网络服务。一个单一的/hello/端点对HTTP GET请求作出响应。...注意,浏览器REST API发出两个请求: 对同一URL的HTTP OPTIONS请求确定Access-Control-Allow-Origin HTTP响应头是否有效。 实际的REST调用。...在发出任何请求之前,通过OAuth服务器发送一个客户ID和可能的客户秘密,获得一个令牌。然后,OAuth令牌会随每个API请求一起发送,直到过期。

4.1K20

增强你的 Fetch,或许你该考虑考虑 ultrafetch 了

虽然 Fetch API 很快成为在 Node 应用程序中发出 HTTP 请求的选择,但它的实现仍然落后于当前的标准。因为,Fetch API 还是存在一些限制和缺点,阻碍了其潜力的充分发挥。...该库使用内存中的 Map 实例作为默认缓存引擎,用于存储由 Fetch APIGET、POST 或 PATCH 请求生成的响应对象。...为了理解这个库的工作原理,我用一个示例简单给大家说明一下: 假设作为 API 端点的业务逻辑的一部分,你的 Node.js 后端需要发出一个 HTTP GET 请求来获取一些数据。...每次对该端点的 API 调用都需要一个新的 HTTP GET 请求。 如果这个请求总是返回相同的数据,你可以第一次缓存响应,然后在接下来的时间里内存中读取它。...一旦发出请求,它将永远被缓存,这可能不是期望的行为。

18610

使用 Node.js 搭建一个 API 网关

路由和版本控制 我们将 API 网关定义为您的微服务的入口点。在您的网关服务中,您可以指定客户端路由到特定服务的路由请求。您甚至可以通过路由处理版本或更改后端接口,而公开的接口可以保持不变。...在微服务架构中,您可以通过网络配置将您的服务保护在 DMZ (保护区)中,并通过 API 网关客户公开。该网关还可以处理多个身份验证方法。...Node.js API 网关 当您希望在 API 网关中执行简单的操作,比如将请求路由到特定服务,您可以使用像 nginx 这样的反向代理。但在某些时候,您可能需要实现一般代理不支持的逻辑。...在 Node.js 中,您可以使用 http-proxy 软件包简单地代理对特定服务的请求,也可以使用更多丰富功能的 express-gateway 来创建 API 网关。...API 网关中发出新的请求,并将响应返回给客户端: const express = require('express') const request = require('request-promise-native

2.9K80

request 已废弃 - 推荐一个超快的 Node.js HTTP Client undici

request 这是一个在之前几乎接触过 Node.js 的朋友都会用到的 HTTP 请求工具,有些朋友或许还不知道,这个工具在 2020 年 2 月 11 日已经标记为弃用,在 NPM 基本上搜索不到了...现实情况是,Node.js 核心 HTTP 堆栈存在基本设计问题,如果不破坏 API,就无法克服这些问题。...我们还可以对返回结果监听 'data' 事件,获取响应的数据,就好比之前以流的方式文件读取数据,监听 'data' 事件,不过现在以流的方式读取数据也支持异步迭代,还是参考 探索异步迭代器在 Node.js...console.error('failure', err) } else { console.log('success') } }); }).listen(3010); 使用 stream 网络读取一张图片写入本地...) // RequestAbortedError client.close(); }); abortController.abort(); 除此之外,任何发出 'abort' 事件的 EventEmitter

1.3K10

request 已废弃 - 推荐一个超快的 Node.js HTTP Client undici

request 这是一个在之前几乎接触过 Node.js 的朋友都会用到的 HTTP 请求工具,有些朋友或许还不知道,这个工具在 2020 年 2 月 11 日已经标记为弃用,在 NPM 基本上搜索不到了...现实情况是,Node.js 核心 HTTP 堆栈存在基本设计问题,如果不破坏 API,就无法克服这些问题。...我们还可以对返回结果监听 'data' 事件,获取响应的数据,就好比之前以流的方式文件读取数据,监听 'data' 事件,不过现在以流的方式读取数据也支持异步迭代,还是参考 探索异步迭代器在 Node.js...console.error('failure', err) } else { console.log('success') } }); }).listen(3010); 使用 stream 网络读取一张图片写入本地...) // RequestAbortedError client.close(); }); abortController.abort(); 除此之外,任何发出 'abort' 事件的 EventEmitter

2.9K60

Web 应用开发进化论

客户端 Web 服务器发送请求 Web 服务器客户端发送响应都需要一定时间。 HTTP 请求带有四种基本的 HTTP 方法,我想在这里处理它们:GET、POST、PUT、DELETE。...在传统网站中,对于每个不同的 URL,都会客户端 Web 服务器发出一个新请求。 对于每个 URL,都会将不同的 HTTP GET 方法发送到专用 Web 服务器来完成请求。...对于每个资源,都会 Web 服务器发出另一个请求。 这些也称为瀑布请求,因为一个请求必须等待另一个请求完成才能继续发送。...如果用户碰巧在同一域(例如 conardli.top)内页面(例如 /home)导航到页面(例如 /about),每次导航都会 Web 服务器发出请求。...因此,我们必须客户端服务器(使用 JavaScript/Node.js 或其他编程语言编写的应用程序服务器)发出另一个请求,以请求这些缺失的的数据。

4.2K10

axios介绍与使用说明 axios中文文档

API 支持拦截请求和响应 转换请求和响应数据 取消请求 自动转换 JSON 数据 客户端支持防御 XSRF 浏览器支持 支持Chrome、火狐、Edge、IE8+等浏览器 安装 使用 npm安装: $...请求 // 为给定 ID 的 user 创建请求 axios.get('/user?....then(axios.spread(function (acct, perms) { // 两个请求现在都执行完成 })); axios API 可以通过 axios 传递相关配置来创建请求...` 允许在服务器发送前,修改请求数据 // 只能用在 "PUT", "POST" 和 "PATCH" 这几个请求方法 // 后面数组中的函数必须返回一个字符串,或 ArrayBuffer,或...("/user/12345") .catch(function (error) { if (error.response) { // 请求发出,但服务器响应的状态码不在 2xx

67.1K102
领券