Bootstrap

浏览器跨域请求中options的问题处理

跨域请求中的options请求,在以往的项目中有注意到,但是今天因为一个问题,卡了2小时才解决,这么久的时间足以说明我对这个问题并没有充分的理解和认识,为此写下这篇文章警示自己,同时也给碰到问题的同学提供一些思路。

跨域请求的三种方式

XHR对象对于HTTP跨域请求有以下三种方式

  • 简单请求
  • Preflighted 请求
  • Preflighted 认证请求
1、简单请求

简单请求进行跨域访问时,XMLHttpRequest对象会直接将实际请求发送给服务器,和一般请求没有差别。但是,要达成简单请求,请求中必须满足下面的所有要求

  • 以下请求方法之一
    • GET
    • HEAD
    • POST
  • 不可使用自定义的请求头字段,除了以下被规定的字段
    • Accept
    • Accept-Language
    • Content-Language
    • Content-Type
    • DPR
    • Downlink
    • Save-Data
    • Viewport-Width
    • Width
  • Content-Type 的值仅限于下列三者之一: