Skip to content

CORS跨域

CORS背后的基本思想是使用自定义的HTTP头部允许浏览器和服务器相互了解对方,从而决定请求或响应成功与否

CORS是Cross-Origin Resource Sharing的缩写,即跨域资源共享。CORS的基本思想就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功,还是应该失败。

对比

优点:
  • 功能强大
缺点:
  • 需要服务端来配合实现(其实很简单~)
  • IE必须IE10以上。。。

实现

涉及的HTTP请求头

  • Access-Control-Allow-Origin : 指定授权访问的域
  • Access-Control-Allow-Methods:授权请求的方法(GET, POST, PUT, DELETE,OPTIONS等)

apache

Access-Control-Allow-Origin在服务端哪里配置
  1. nginx
js
location / {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
    add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
}
  1. apache 2.1 httpd.conf文件中 把#注释符去掉 LoadModule headers_module modules/mod_headers.so

目的是开启apache头信息自定义模块

2.2 然后在独立资源域名的虚拟主机添加一行

Header set Access-Control-Allow-Origin *

意思是对这个域名的资源进行访问时,添加一个头信息

问题:

  1. CORS如何设置
  2. 加上CORS之后从发起到请求正式成功的过程