Inventory of front-end cross-domain solutions (including front-end and back-end)
Table Of Contents 1.同源政策 如果两个页面拥有相同的协议、域名和端口,那么这两个页面就属于同一个源,其中只要有一个不相同,就是不同源。 http://www.example.com:8080/dir/page.html 与 http://www.example.com/page.html 不跨域 http:协议 www:子域名 example:主域名 8080:端口号(http默认8080) 同源策略的限制: Cookie、LocalStorage 和 IndexDB 无法读取 AJAX 请求不能发送 跨域是浏览器为了安全而实施的同源政策导致的 2.跨域解决方案 跨域报错: 2.1 CORS 有几个关键的响应头字段: a、Access-Control-Allow-Origin:必填,表示可以允许请求的来源。可以填写具体的源名称,也可以填写*表示允许任何源请求。 b、Access-Control-Allow-Methods:表示允许的请求方法列表。 c、Access-Control-Allow-Credentials:一个布尔值,表示是否允许发送cookie。默认情况下,cookie 不包含在 CORS 请求中。如果设置为 true,则表示服务器具有显式权限。Cookies 可以包含在请求中并一起发送到服务器。 d、Access-Control-Allow-Headers:其指明了实际请求中允许携带的首部字段。CORS请求时,XMLHttpRequest对象的getresponseheader()方法只能获取六个基本字段:缓存控制、内容语言、内容类型、过期时间、最后修改时间和pragma。如果要获取其他字段,则必须在访问控制公开标头中指定它们。 e、Access-Control-Max-Age:预检请求的有效期。在此期间,无需再次发送预检请求。 普通跨域请求:只需服务端设置Access-Control-Allow-Origin即可 Access-Control-Allow-Origin: * 表示该资源可以被任意外域访问,若设置具体的值则只可与设置的值跨域 备注: 当响应的是附带身份凭证的请求时( cookie ),服务...