【Node.js】第八章 express编写接口
创始人
2024-02-15 05:02:25
0

目录

1.  编写接口

1.1 编写GET接口

2.2 编写POST接口

2. 接口跨域问题

2.1 跨域问题

2.2 使用cors中间件解决跨域问题

2.3 CORS

​2.4 JSONP接口


1.  编写接口

1.1 编写GET接口

2.2 编写POST接口

 

2. 接口跨域问题

2.1 跨域问题

2.2 使用cors中间件解决跨域问题

cors是express的第一个第三方中间件,通过安装和配置cors中间件,可以很方便地解决跨域问题。步骤如下:

1. 运行npm install cors安装中间件

2. 使用const cors = require('cors')导入中间件

3. 在路由之前调用app.use(cors())配置中间件

2.3 CORS

1. CORS的概念

CORS(Cross-Origin Resource Sharing,跨域资源共享)由一系列HTTP响应头组成,这些HTTP响应头决定浏览器是否阻止前端JS代码跨域获取资源。 

浏览器的同源安全策略默认会阻止网页“跨域”获取资源。但如果接口服务器配置了CORS相关的HTTP响应头,就可以解除浏览器的跨域访问限制。

CORS主要在服务器端进行配置,客户端浏览器无须做任何配置,即可请求开启了CORS的接口。

CORS在浏览器中有兼容性,只有支持XMLHttpRequest Level2的浏览器,才能正常访问开启了CORS的服务器接口(IE10+、Chrome4+、FireFox3.5+) 

2. CORS相关的三个响应头

  • Access-Control-Allow-Origin
  • Access-Control-Allow-Headers
  • Access-Control-Allow-Methods

默认请求下,CORS仅支持客户端发起GET、POST、HEAD请求

如果客户端希望通过PUT、DELETE等方式请求服务器资源,则需要在服务器端,通过Access- Control-Methods来指明实际请求所允许使用的HTTP方法。

// 只允许GET、POST、DELETE、HEAD请求
res.setHeader('Access-Control-Allow-Methods','GET','POST','DELETE','HEAD')// 允许所有请求
res.setHeader('Access-Control-Allow-Methods','*')

 3. CORS请求分类

分类:

  • 简单请求:
    • 请求方式是GET、POST、HEAD三者之一
    • HTTP头部信息不超过以下九个字段:无自定义头部字段、Accept、Accept- Language、Content- Language、DPR、Downlink、Save-Data、View-Width、Width、Content-Type
  • 预检请求
    • 请求方式为GET、POST、HEAD之外的请求Method类型
    • 请求头中包含自定义头部字段
    • 向服务器发送了application/json格式的数据

在浏览器与服务器正式通信之前,浏览器会先发送OPTION请求进行预检,以获知服务器是否运行该实际请求,所以只一次的OPTION请求称为“预检请求”,服务器成功响应预检请求后,才会发生真正的请求,并携带真实数据。

 2.4 JSONP接口

// 定义jsonp接口的具体实现
app.get('/api/jsonp', (req, res) => {// 1. 得到函数名称const funName = req.query.callback;// 2. 定义要发送给客户端的数据const data = { name: 'sun', age: '20' };// 3. 拼接出一个函数调用const str = `${funName}(${JSON.stringify(data)})`;// 4. 把拼接的字符串响应给客户端res.send(str);
})

在网页中 使用jquery发起jsonp请求: 

相关内容

热门资讯

中专毕业生个人自我鉴定 中专毕业生个人自我鉴定(精选34篇)  自我鉴定即为自我总结,自我鉴定可以使我们更加明确目标,让我们...
师德师风的自我评价 师德师风的自我评价(精选5篇)  在日常学习、工作抑或是生活中,我们都尝试过写自我评价吧,自我评价是...
优缺点自我评价 优缺点自我评价最近觉得自己的缺点太多了,赶紧来自我评价一下,以便及时更新软件,让硬件更好的发挥最大效...
学生自我评价简短范文 学生自我评价简短范文  自我评价怎么写  自我评价的内容一般从四个方面去写;  一、学业上  大学里...
教育实习生自我鉴定 教育实习生自我鉴定(通用11篇)  自我鉴定是个人对一个时间段的自我总结,自我鉴定可以让我们对自己有...
个人思想道德品质自我评价 个人思想道德品质自我评价(通用15篇)  在日常学习、工作和生活中,许多人都需要写自我评价,自我评价...
大专学生毕业自我鉴定 大专学生毕业自我鉴定范文(精选19篇)  自我鉴定是对自己过去某一阶段的学习或工作的自我分析和总结,...
工作通用自我评价 工作通用自我评价  在生活、工作和学习中,我们都不可避免地要写自我评价,自我评价直接影响学习和参与社...
医德考评自我评价 医德考评自我评价11篇  在学习、工作、生活中,我们都需要频繁使用自我评价,自我评价具有重要的社会功...
军训训练自我鉴定 军训训练自我鉴定(精选8篇)  自我鉴定即为自我总结,自我鉴定使我们及时找出错误并改正,不妨让我们用...
大学生毕业登记表自我鉴定 大学生毕业登记表自我鉴定(通用17篇)  自我鉴定是个人在一个时期的自我总结,写自我鉴定有利于我们工...
幼师专业自我鉴定 幼师专业自我鉴定(通用14篇)  自我鉴定是个人对一个时期的学习或工作进行自我总结,它可以帮助我们了...
用英文自我评价 用英文自我评价(通用14篇)  无论是身处学校还是步入社会,我们经常会被要求写一份自我评价,自我评价...
学员自我鉴定 学员自我鉴定七篇  自我鉴定是个人在一个时期的自我总结,自我鉴定可以提升自身总结能力,因此好好准备一...
见习自我鉴定 见习自我鉴定(精选16篇)  自我鉴定是个人在一个时期对自己的学习或工作生活的自我总结,自我鉴定使我...
大一自我鉴定总结 大一自我鉴定总结  自我总结是一个人在某个阶段的学习和工作生活等表现的一个自我总结,写自我总结有利于...
实习转正自我评价 实习转正自我评价 实习转正自我评价 本文由自我评价网提供参考! 转眼间2个月试用期已接近尾声,首先感...
护理毕业生自我鉴定 精选护理毕业生自我鉴定4篇  自我鉴定是个人对一个时间段的自我总结,自我鉴定就可以促使我们思考,因此...
电大毕业自我鉴定 有关电大毕业自我鉴定汇编5篇  自我鉴定是对一个阶段的学习或工作进行回顾检查并分析评价,自我鉴定可以...
电大毕业生自我鉴定 【精品】电大毕业生自我鉴定4篇  正常来讲,自我鉴定即为自我总结,自我鉴定可以使我们更有效率,为此要...