OPTIONS 方法在跨域请求(CORS)中的应用

OPTIONS 方法比较少见,该方法用于请求服务器告知其支持哪些其他的功能和方法。通过 OPTIONS 方法,可以询问服务器具体支持哪些方法,或者服务器会使用什么样的方法来处理一些特殊资源。可以说这是一个探测性的方法,客户端通过该方法可以在不访问服务器上实际资源的情况下就知道处理该资源的最优方式。

既然比较少见,什么情况下会使用这个方法呢?

采用Ajax跨域调用接口的时候,浏览器会自动发起一个 OPTIONS 方法到服务器。

自动发起的 OPTIONS 请求,其请求头包含了的一些关键性字段:

OPTIONS /upload HTTP/1.1
Access-Control-Request-Method: POST
Access-Control-Request-Headers: accept, content-type
Origin: http://xxx.com

服务器收到预检请求后,检查了Origin、Access-Control-Request-Method和Access-Control-Request-Headers字段以后,确认允许跨源请求,就可以做出回应。

options
OPTIONS /api/User/Register HTTP/1.1
Host: 12.11.10.206:5005
Access-Control-Request-Method: POST
Access-Control-Request-Headers: accept, content-type
Origin: http://localhost
User-Agent: PostmanRuntime/7.18.0
Accept: */*
Cache-Control: no-cache
Postman-Token: 34e5eb85-3c07-48b8-bea8-60477a63047d,0259f642-9d54-4674-8a2a-e063c0482fdc
Host: 114.116.100.206:5005
Accept-Encoding: gzip, deflate
Content-Length: 0
Connection: keep-alive
cache-control: no-cache

上面的HTTP回应中,关键的是Access-Control-Allow-Origin字段,表示orgin 可以请求数据。该字段也可以设为星号,表示同意任意跨源请求。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容