Skip to Content
Node与Express开发(第2版)
book

Node与Express开发(第2版)

by Ethan Brown
June 2021
Intermediate to advanced
290 pages
9h 21m
Chinese
Posts & Telecom Press
Content preview from Node与Express开发(第2版)
REST API
和
JSON
|
163
久的。对这种情形,返回一个
500
响应码是合适的。
客户端错误
客户端错误是由客户端差错导致的,这种差错往往是缺少参数或参数非法造成的。这时
使用
500
响应码并不合适
,毕竟服务器并没有出错。一切都是正常的,只是客户端没
有正确使用
API
。这时你有两种选择
:返回状态码
200
,并在响应的
body
中描述错误,
或者返回一个合适的
HTTP
状态码
,尝试通过状态码来描述错误。我推荐使用后一种方
法。在这种情形下,最有用的响应码是
404
(
未找到)、
400
(请求错误)和
401
(未授
权)。而且,响应
body
应当包含对这个错误的详细解释
。如果你希望精益求精,那么错
误信息甚至要包含文档的链接。要注意,如果用户请求了某个东西的一个列表,而实际
没有东西可返回,这就并非是一个错误条件,只要返回一个空列表就是合适的。
我们的应用中将同时使用
HTTP
响应码和
body
中的错误信息。
15.4
 跨域资源共享
如果你要发布一个
API
,很可能会希望别人能够使用它,这就出现了
跨站点的
HTTP
请
求
。跨站点的
HTTP
请求已经成了很多攻击的入手点
,因而也受到了
同源策略
的约束。同
源策略对脚本加载进行了约束,具体来讲,就是要求协议、域名和端口都必须匹配。但如
此一来,你就没法把你的
API
给另一个网站使用了
。于是,跨域资源共享(
CORS
)就应
运而生了。
CORS
允许你根据具体情况解除这个约束
,甚至允许具体列出允许访问当前脚
本的域名。
CORS
是通过
Access-Control-Allow-Origin
头实现的。要在
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

面向对象的思考过程(原书第5版)

面向对象的思考过程(原书第5版)

马特 魏斯费尔德
精通模块化JavaScript

精通模块化JavaScript

Nicolás Bevacqua

Publisher Resources

ISBN: 9787115565099