跨域请求处理(前)

  1. CORS(使用这个的话服务器也要有对应的CORS配置才可以生效)
    1.1. 浏览器配合服务器的Access-Control-Allow-Origin来进行不同域的请求拦截。如果服务器返回的指定头部和我们发送的Origin不一致浏览器就会拦截该请求。(Origin表示来源域)
    1.2. 带凭据的请求。发送请求时头部使用withCredentials:true.如果服务器没有返回Access-Control-Allow-Credentials:true,浏览器就会拦截该请求不会把返回的响应交给JavaScript.

  2. JSONP (JSON with padding)
    原理:script标签没有同源限制,通过script.src指定请求源和callback,服务端可以返回指定的callback以及函数的参数(json数据)

  3. 使用一些中间代理,比如nginx

  4. 支持自定义的请求头部
    原理:Preflighted Request。会通过options多发送一次请求来确定是否支持该请求方式。该方式应该发送以下头部信息。

    Origin:
        Access-Control-Request-Method:
        Access-Control-Request-Headers:
    

    服务器返回对应的同步信息来表示是否支持:

      Access-Control-Allow-Origin:
        Access-Control-Request-Method:
        Access-Control-Request-Headers:
    

猜你喜欢

转载自blog.csdn.net/llr_h5/article/details/80630713