跨域总结

204 阅读1分钟

1、跨域总结

浏览器的同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。通常不允许不同源间的读操作。

跨域条件:协议,域名,端口,有一个不同就算跨域。

解决跨域的几种方式:

jsonp

script标签的src属性中的链接可以访问跨域的js脚本,利用这个特性,服务端不再返回JSON格式的数据,而是返回一段调用某个函数的js代码,在src中进行了调用,这样实现了跨域。

限制:1、需要服务的支持 2、只能发起GET请求

nginx

利用nginx反向代理把跨域为不跨域,支持各种请求方式。

缺点:需要在nginx进行额外配置,语义不清晰

CORS

CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求。

服务端设置 Access-Control-Allow-Origin 就可以开启 CORS。 该属性表示哪些域名可以访问资源,如果设置通配符则表示所有网站都可以访问资源。

优势:1、在服务端进行控制是否允许跨域,可自定义规则 2、支持各种请求方式

缺点:会产生额外的请求