跨域------06

版权声明:俗世凡人行(释) https://blog.csdn.net/weixin_41887155/article/details/85622878

目录

一. 处理跨域方式--代理

二: 处理跨域方法二--JSONP

三: 处理跨域方式--XHR2


一. 处理跨域方式--代理

  • 一个域名地址的组成;

        https://        www    .     abc.com      :     8080          /         scripts/jquery.js

         协议           子域名          主域名              端口号                    请求资源地址

  • 当协议,子域名,主域名,端口号中任意一个不相同时,都算作不同域;
  • 不同域之间相互请求资源,就算作"跨域";     比如http://www.abc.com/index.html请求http:www.efg.com/service.php;
  • JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象,什么是跨域呢,简单地理解就是因为JavaScript同源策略的限制,a.com域名下的js无法操作b.com或是c.a.com域名下的对象;
  • JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象;eg: 
  1. www.abc.com/index.html调用www.abc.com/service.php(非跨域);
  2. www.abc.com/index.html调用www.efg.com/service.php(跨域);
  3. www.abc.com/index.html调用bbs.abc.com/service.php(跨域);
  4. www.abc.com/index.html调用www.abc.com:81/service.php(跨域);
  5. www.abc.com/index.html调用https://www.abc.com/service.php(跨域);
  • 域名介绍: 子域名不相同就是跨域
  1. 主域名  abc.com
  2. 子域名  www.abc.com
  3. 子域名  bbs.abc.com
  4. 子域名  beijing.bbs.abc.com
  5.  子域名  haidian.beijing.bbs.abc.com

代理方法处理跨服详解:

  1. 同过在同域名的web服务器端创建一个代理;
  2. 北京的服务器(域名:wwwbeijing.com);  上海的服务器(域名:www.shanghai.com);
  3. 比如在北京的web服务器的后台来调用上海服务器的服务,然后再把响应结果返回给前端 ,这样前端调用北京同域名的服务就和调用上海的服务效果相同了;
  4. 说白了就是后台处理跨域,直接在同名服务器下写一个方法,调用跨域服务器的内容,然后把内容返回给客户端;

二: 处理跨域方法二--JSONP

JSONP可用于解决主流服务器GET请求的跨域数据访问的问题,不支持POST请求;

三: 处理跨域方式--XHR2

  1. HTML5提供的XMLHttpRequest Level2已经实现了跨域访问以及其他的一些新功能;
  2. IE10以下的版本都不支持;
  3. 在服务端做一些小小的改造即可: 

           header('Access-Control-Allow-Origin:*');

           header('Access-Control-Allow-Methods:POST,GET');     

猜你喜欢

转载自blog.csdn.net/weixin_41887155/article/details/85622878