非 2XX 状态代码响应是否仍包含 CORS 特定标头,例如Access-Control-Allow-Origin
, Access-Control-Allow-Methods
, and Access-Control-Max-Age
?这对客户来说还有意义吗?
例如:
➜ api git:(master) ✗ curl -i http://127.0.0.1:9000/dfas
HTTP/1.1 404 Not Found
Connection: close
Server: Node.js v6.3.1
Cache-Control: no-cache, no-store
Access-Control-Max-Age: 300
Access-Control-Allow-Origin: *
Content-Type: application/json
Content-Length: 60
Date: Thu, 11 Aug 2016 22:58:33 GMT
{"code":"ResourceNotFound","message":"/dfas does not exist"}
是的,即使有非 2xx 响应,让服务器发送 CORS 标头也是有意义的。原因是:响应中没有 CORS 标头,非 2xx 响应代码不会暴露给前端代码(通过 Fetch 或 XHR)。响应代码可能会显示在开发工具控制台中,但如果没有 CORS 标头,前端代码唯一能够以编程方式确定的是发生了错误,但无法确定错误的响应代码。
因此,如果您希望前端代码能够根据响应代码进行有用的错误处理,则即使在非 2xx 响应中,服务器也应该发送 CORS 标头。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)