关于options请求方式

关于options请求方式

options请求方法的主要用途有两个:

1、获取服务器支持的HTTP请求方法;

2、用来检查服务器的性能。例如:AJAX进行跨域请求时的预检,需要向另外一个域名的资源发送一个HTTP OPTIONS请求头,用以判断实际发送的请求是否安全。

为什么会出现options请求方式

想必很多小伙伴在第一次遇到请求方式为options时,会有一丝诧异,有些人会百度百度,有些人可能压根不在乎。至于为什么会出现options请求,我也是百度查阅资料略知一二。

  • 这得从浏览器同源策略和跨域说起,具体可阅读也谈同源策略和跨域问题和浏览器同源政策及其规避方法,这里不在赘述。

  • 解决跨域问题的方法有很多种,CORS是比较好的解决方案,我们的项目也是用的这种模式,这个模式会有”预检”的请求,也就是正常请求之前的options请求。

	跨域资源共享(CORS) 是一种机制,它使用额外的 HTTP 头来告诉浏览器 让运行在一个origin (domain) 
上的Web应用被准许访问来自不同源服务器上的指定的资源。当个资源从与该资源本身所在的服务器不同的
域或端口请求一个资源时,资源会发起一个 跨域 HTTP 请求。

 	比如,站点 http://domain-a.com 的某 HTML 页面通过的 src 请求 http://domain-b.com/image.jpg。
网络上的许多页面都会加载来自不同域的CSS样式表,图像和脚本等资源。need-to-insert-img

    出于安全原因,浏览器限制从脚本内发起的跨源HTTP请求。 例如XMLHttpRequest和Fetch API遵循同源
策略。这意味着使用这些API的Web应用程序只能从加载应用程序的同一个域请求HTTP资源,除非使用CORS
头文件。
  • 浏览器将CORS请求分为两类:简单请求(simple request)和非简单请求(not-simple-request),简单请求浏览器不会预检,而非简单请求会预检。
同时满足下列三大条件,就属于简单请求,否则属于非简单请求
1.请求方式只能是:GET、POST、HEAD

2.HTTP请求头限制这几种字段:Accept、Accept-Language、Content-Language、Content-Type、Last-Event-ID

3.Content-type只能取:application/x-www-form-urlencoded、multipart/form-data、text/plain

你可能感兴趣的:(axios,http,前端)