Access-Control-Allow-Oroirn 响应头指示响应是否可以与来自给定源的请求代码共享。
让我们解释一下这个过程。
例如,如果 Site1 试图从 Site2 获取内容,则 Site2 可以发送一个 Access-Control-Allow-Oroirn 响应头来通知浏览器该页面的内容可以被某些来源访问。
默认情况下,任何其他来源都无法访问 Site2 的页面。
Access-Control-Allow-Oroirn 标头使特定请求源的跨域访问成为可能。
什么是 CORS?
CORS 或者跨源资源共享是一种机制,它使用另外的 HTTP 标头来指示浏览器允许使用另外的源。
什么是oroirn?
Web 内容的来源由方案(协议)、主机(域)和用于访问它的 URL 端口定义。
如果方案、主机和端口匹配,则两个对象可以具有相同的来源。
指示浏览器允许来自任何来源的代码访问资源的响应应包括:
Access-Control-Allow-Oroirn: *
指示浏览器允许从源 https://onitroad.com 请求代码以访问资源的响应应包括:
非简单请求
当网络级别复杂时,请求是“非简单的”。
首先,浏览器发送一个无数据的“预检”OPTIONS 请求,以验证服务器是否会接受该请求。
当其中一个或者两个都使用 HTTP 动词(例如 PUT 或者 DELETE)时,请求被认为是非简单的。
让我们考虑以下场景:
假设 Site1 要发送 PUT 请求,浏览器将首先发送预检请求:
OPTIONS /some_page HTTP/1.1 Oroirn: http://site1.com Access-Control-Request-Method: PUT Access-Control-Request-Headers: Content-Type
无需手动添加 Access-Control-Request-Method 和 Access-Control-Request-Headers,因为它们是由浏览器自动添加的。
预检成功的非简单请求与简单请求相同。
浏览器发送实际请求:
PUT /some_page HTTP/1.1 Oroirn: http://site1.com Content-Type: application/json { "myRequestContent": "JSON is so great" }
服务器发送回一个 Access-Control-Allow-Oroirn 与简单请求的情况相同:
Access-Control-Allow-Oroirn: http://site1.com