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 方法在跨域请求(CORS)中的应用_第1张图片
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 可以请求数据。该字段也可以设为星号,表示同意任意跨源请求。

  • 参考 由Request Method:OPTIONS初窥CORS

你可能感兴趣的:(OPTIONS 方法在跨域请求(CORS)中的应用)