美文网首页
跨域原理及演示

跨域原理及演示

作者: 陈陈_2140 | 来源:发表于2018-12-29 10:24 被阅读0次

        基于安全方面考虑,浏览器对于与当前页面不同域的数据交互会进行阻止,不同源的客户脚本在没有明确授权的情况下不能读取对方资源,这一规则称为同源策略。

         同源策略使得常规跨域数据交互被阻止,而有时用户又不得不进行外域数据请求,因此,跨域就是用于解决不同域之间的数据正常交互的技术方案。主要跨域手段包括以下三种:

1、JSONP方法

        JSONP(JSON with Padding),这种方法的主要思想是通过script请求任意域数据,将请求到的数据作为当前域下的JS代码进行执行,通过一些列转换,就可将异域的数据获取并在当前页面进行操作。具体步骤以下面为例进行说明:

①创建一个能实现静态解析和动态路由的服务器和html页面文件

②node server.js创建本地服务器之后在localhost:8080端口下打开html,点击show news触发click事件去跨域请求http://127.0.0.1:8080/getnews?callback=appendHtml下的数据,服务器对当前含/getnews的script请求进行相应,返回了   

appendHtml(["第11日前瞻:中国冲击4金 博尔特再战200米羽球","正直播柴飚/洪炜出战 男双力争会师决赛","女排将死磕巴西!郎平安排男陪练模仿对方核心"])           格式的数据,在当前页面下被作为JS调用提前写好的函数进行执行,最后展示到页面上。如下图

2、cors方法

        CORS(corss-oringin resource sharing),是一种ajax跨域请求资源的方式,由于浏览器同源策略机制,当使用XMLHttpRequest发送请求时,如果该请求不符合同源策略,浏览器会给该请求加上一个请求头:origin,此时如果不做任何处理,浏览器将拒绝接受此请求返回的数据,将无法实现跨域数据交互。CORS方法的思想就是在返回结果中加入一个响应头:Access-Control-Allow-Origin,此时浏览器就会接受之前带有Origin相应头对应数据,实现异域数据传输。下面结合而具体演示说明:

①先创建一个具有静态和路由选择功能的服务器,本地打开html文件页面:

当跨域向http://127.0.0.1发送跨域数据请求时,浏览器会给该请求加上响应头Origin,导致请求数据被浏览器拒绝。

同源策略使得跨域请求时响应头中被加上origin

当在代码中加入Access-Control-Allow-Origin后,浏览器会允许localhost去请求http://127.0.0.1域下的数据,这就是CORS方法。

方法3:降域

当a.jrg.com 想要操作 b.jrg.com的文件,可以通过两者都添加document.domain = "jrg.com"降域为jrg.com才能互相操作

缺点:只能用于相同的父级域名

降域

跨域是实现异域之间数据交互的必要手段,不同情形下选择合适的方法进行跨域操作,是各个域之间数据交互的基础。

相关文章

  • 跨域原理及演示

    基于安全方面考虑,浏览器对于与当前页面不同域的数据交互会进行阻止,不同源的客户脚本在没有明确授权的情况下不...

  • JSONP跨域

    JSONP原理及应用 之前的文章中简单介绍过前端可以实现的跨域方式,这次介绍一种更为常用的跨域方式,但这种跨域方式...

  • 跨域演示

    jsonp jsonp代码 Web页面上调用js文件时不受跨域的影响(不仅如此,我们还发现凡是拥有”src”这个属...

  • JavaScript面试题(一)

    一、ajax原理是什么?ajax如何实现跨域?原理及过程? Q1:Ajax的工作原理:通过XmlHttpReque...

  • 响应头设置跨域和Spring注解跨域

    CORS跨域原理详解Spring解决跨域 响应头设置跨域 Spring注解跨域@CrossOrigin 可添加到方...

  • 跨域

    跨域 什么是跨域: 解决跨域 通过jsonp原理:在页面引入跨域js和css时,没有存在跨域问题.因此可以动态创建...

  • 跨域问题详解分析

    参考文档 CORS详解 跨域资源共享 CORS 详解 js中几种实用的跨域方法原理详解 跨域的那些事儿 跨域与跨域...

  • 跨域请求原理

    跨域请求原理

  • javascript和jQuery分别实现jsonp跨域请求

    本文以豆瓣网上的接口数据为例演示jsonp的跨域请求,具体实现原理不再赘述,不懂得请先百度jsonp的原理后再来看...

  • jsonp跨域及原理

    1、jsonp想实现跨域,首先接口必须支持; 2、借助script标签,有src属性,所以可以发出网络请求,浏览器...

网友评论

      本文标题:跨域原理及演示

      本文链接:https://www.haomeiwen.com/subject/zkrylqtx.html