首页 > 代码库 > 处理跨域的方式

处理跨域的方式

  JavaScript出于安全方面的考虑,不予许跨域调用其他页面的对象,即JavaScript同源策略的限制

一、代理

  在同域名的web服务器端创建一个代理。

  什么是代理?举例:

    a服务器(域名:www.a.com)(非跨域)

    b服务器(域名:www.b.com)(跨域)

  调用跨域的服务 www.b.com/service.php 时,在a服务器上创建一个服务 www.a.com/proxy-bservice.php,由这个服务从后端去访问 www.b.com/service.php 服务,将响应值获取过来,返回给前端。

  在这里,www.a.com 做了一个代理,前端只需要访问 www.a.com/proxy-bservice.php 就相当于访问 www.b.com/service.php

  服务代理属于后端技术,具体实现就厚脸皮的交给后台的大大们了。

 

二、JSONP

  JSONP一般用于解决主流浏览器的跨域数据访问问题。原理:

  在 www.a.com 页面中:

  <code>

  <script>

    function jsonp (json) {

      console.log(json[‘name‘]);

    }

  </script>

  <script src="http://www.b.com/jsonp.js"></script>

  </code>

  在 www.b.com 页面中:

  <code>jsonp({‘name‘: ‘666‘, ‘age‘: ‘23‘});</code>

 

处理跨域的方式