跨域

76 阅读1分钟

跨域

什么是跨域

跨域就是ajax和页面的地址不同源,且浏览器的同源策略限制,无法直接进行访问.同源策略是一种安全机制.

什么是同源策略

1.同源策略是浏览器的安全策略,值得是两个url的 协议名 ip地址 端口号 都是一样的则是同源地址

同源策略的限制包括
  1.Cookie.LocalStorage和IndexDB等本地存储数据
  2.DOM的操作限制,如不能获取非同源页面的DOM对象
  3.AJAX请求不能发送给非同源的站点

2.如果不同的,则服务器为了用户的安全就会拒绝接收服务器响应的数据

解决跨域的方法

  1. CORS:服务器端设置响应头信息,允许跨域请求。CORS需要浏览器和服务器同时支持,需要在服务器端进行配置。一般大部分后台会进行配置
  2. 代理服务器:前端将请求发送给自己的服务器。再由服务器发送请求到目标服务器械,拿到数据后再返回给前端。这种方法一般是后台还没有设置CORS方法的时候前端人员解决跨域问题的常用方法。这种方法需要自己搭建服务器,比较麻烦,但支持所有的HTTP请求方法。
  3. JSONP:利用<script>标签的跨域特性,通过动态插入<script>标签的方式来获取跨域的数据。返回的数据需要包装在函数中进行调用,这个函数是回调函数。但是只支持GET请求。