当前位置:   首页国内主机资讯请求主机:几个导致options请求的原因如何解决

请求主机:几个导致options请求的原因如何解决

发布日期:2021-11-12 12:40 | 文章来源:开源中国

请求主机

  在做开发的时候,很多新手都遇到,出现options请求的情况,这时候要怎么解决呢?

  通过http方式我们最常用的就是:GET,POST;

  GET:发送一个请求来取得主机上的某一资源。POST:向主机提交数据。

  他们都可以作为前端和后台的数据交换使用;那么options在什么情况下会出现呢?

  1.跨域调用,例如:调试时候很多情况都在跨越方式下调试;

  2.自定义头部;

  3.请求头的content-type参数:application/x-www-form-urlencoded,multipart/form-data,text/plain之外的格式。

  options通常是浏览器自动发起的,目的就是去主机检查一下接下来要到用的方法(GET、POST、PUT、detele)在主机上是否支持;以上三种情况出现就会出现options请求了,其实是为了主机安全,例如:同源策略引发这个规则;

  对于主机该如何处理呢?通过以下这两种检查来解决。

  1.检查来源是否允许 -> 自定义的头部是否包含(这个和你项目有关)

  如果你项目认为安全的,直接返回200状态码,就可以。

  2.检查来源是否允许 -> 自定义的头部是否包含(这个和你项目有关)->检查content-type 的内容是否是你期望的

  如果你项目认为是安全的,直接返回200状态码,就可以;如果不允许你可以放回状态码400或者其他;

  那对于options请求影响服务性能,要如何来进行优化呢?

  本来一个请求就搞定,结果频繁多了很多options必然造成服务的压力;

  可以做到options请求做缓存处理,例如: http:// /api/getUser 接口会出现 options请求,我们在options返回是做一次options缓存,告知前端以后在此请求这个接口就不要在发options了,主机响应时可设置 Access-Control-Max-Age 的时间,默认10分钟;

  希望以上就是发生options请求的原因及解决方法,希望对你有所帮助。

联系我们
关于使用场景和技术架构的更多咨询,请联系我们的销售和技术支持团队。
Yingsoo Host

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部