前端发送http请求全过程(跨域)

490 阅读1分钟
  1. 前端发起一个http请求,请求头里面包括请求的地址Referer(请求从哪儿来)

  2. 浏览器得到这个请求,因为有同源策略,所以去对比请求地址和Referer地址中的协议/主机/端口号,如果不一样,浏览器往这个http请求头中添加origin字段(即Referer地址中的协议/主机/端口号)

  3. 浏览器向服务器发送请求

  4. 服务器处理请求,并产生响应

    如果请求头中没有origin说明不涉及跨域,服务器对此不作判断

    如果请求头中有orgin字段,服务器根据可访问的域列表做出回应

    • 列表中有该origin,在响应头中加入Access-Control-Allow-Origin信息
    • 列表中没有该origin,不作处理
  5. 浏览器对http请求和响应做对比

    • 涉及同源策略:看响应头中有没有Access-Control-Allow-Origin,没有报错
    • 不涉及同源策略:直接处理

前端解决跨域问题的两种方法

  1. 关闭浏览器的同源策略。
  2. 使用代理访问服务器。 但是这两种方法都是暂时的,最终的解决还是需要后端对访问域做出许可。

如果理解有问题,请不吝赐教。