美文网首页
js里的同源

js里的同源

作者: 行不离书 | 来源:发表于2016-08-30 21:40 被阅读0次

/*------------同源---------------*/

同源:当两个接口的协议、域名、端口号都相等时,这俩接口是同源的,只要有一个条件不相等,则非同源。不是同源的两个页面不能互相访问本地缓存、不能互相修改dom节点、不能使用ajax请求对方接口数据

如何判断两个网页同源

1、协议相同       2、域名相同          3、端口号相同

同源策略目的:1、保护本地缓存不被读取2、保护网站不被其他网站修改

同源策略的限制:

1、Cookie、localStorage、indexDB无法读取

2、dom节点无法获得。

3、AJAX请求无法发送。

JSONP:利用scritp标签请求外部服务器中的数据,从而绕开同源策略对AJAX请求数据的限制。

jsonp的本质:利用script标签中src属性可以加载任意文件的特性,通过这个属性来访问数据接口(添加一个回调函数作为参数),而数据接口会返回一个由回调函数名包裹的json数据,从而达到获取跨域数据的目的。

var script = document.createElement('script');

script.type = 'text/javascript';

script.src = 'http://10.0.159.198/data.php?callback=foo';

document.getElementsByTagName('head')[0].appendChild(script);

function foo (data) {

alert(data);

}

/*------------封装JSONP---------------*/

function creatScriptTag (srcString) {

var script = document.createElement('script');

script.type = 'text/javascript';

script.src = srcString;

document.getElementsByTagName('head')[0].appendChild(script);

}

creatScriptTag('http://10.0.159.198/data.php?callback=abc');

function abc (data) {

alert(data);

}

ajax和jsonp其实本质上是不同的东西。

ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加标签来调用服务器提供的js脚本。

相关文章

  • js里的同源

    /*------------同源---------------*/ 同源:当两个接口的协议、域名、端口号都相等时,...

  • 跨域问题

    受浏览器同源策略限制的请求场景 同源策略(SOP),同源是指“协议+域名+端口”相同; 跨域的解决方案: 1、js...

  • JS 同源限制

    浏览器安全的基石是“同源政策”(same-origin policy)。 概述 含义 1995年,同源政策由 Ne...

  • 前端跨域问题

    一:同源策略 1.what's this 所谓同源是指,域名,协议,端口相同。当浏览器运行一个JS脚本时会进行同源...

  • Node.js之增删改查和跨域问题

    增删改查 server.js router.js controller.js 跨域问题 浏览器同源策略:协议+域名...

  • JS里AJAX的使用--(同源策略,如何规避同源策略的jsonp

    同源策略: 什么是同源:只有在两个页面的协议(http://或者https://)、域名(www.baidu.co...

  • 常用的跨域方法

    因为浏览器的同源策略保护机制,我们不能随意运行其他不同源下的js脚本,当我们需要跨域运行js脚本时可以使用以下方法...

  • 同源策略产生和如何跨域请求

    浏览器同源策略 含义 所谓同源策略,指的是浏览器对不同源的脚本或者文本的访问方式进行的限制。比如源a的js不能读取...

  • 跨域

    js 跨域 js 同源策略 同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离...

  • 关于同源策略你可能也有的一些疑问

    同源策略的含义详解 含义一(DOM层面的同源策略):限制了来自不同的”document”对象或js脚本,对当前“d...

网友评论

      本文标题:js里的同源

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