简单谈谈json跨域
来源: 阅读:754 次 日期:2016-07-20 15:48:08
温馨提示: 小编为您整理了“简单谈谈json跨域”,方便广大网友查阅!

本文主要给大家讲解了javascript中的json跨域问题,以及跨域安全性的解决办法,总结了二点,分享给大家

首先,先了解浏览器有一个很重要安全性限制,即为同源策略:不同域的客户端脚本在无明确授权的情况下不能读些对方资源。跨域也就是不同源~

简单的说,只要协议,端口,域名有一个不同,即为跨域!

然而,当进行一些比较深入的前端编程的时候,不可避免地需要进行跨域操作,这时候“同源策略”就显得过于苛刻。

解决方法:

1.使用jsonp解决跨域 :(仅适用于GET请求)

实现原理:<script>  标签是不受同源策略的限制的,它可以载入任意地方的 JavaScript 文件,而并不要求同源。

所以 JSONP 的理念就是,我和服务端约定好一个函数名,当我请求文件的时候,服务端返回一段 JavaScript。这段 JavaScript 调用了我们约定好的函数,并且将数据当做参数传入。非常巧合的一点(其实并不是),JSON 的数据格式和 JavaScript 语言里对象的格式正好相同。所以在我们约定的函数里面可以直接使用这个对象。

使用JavaScript代码解决

var eleScript = document.createElement("script"); 

eleScript.type = "text/javascript"; 

eleScript.src = "http://example2.com/getinfo.php"; 

document.getElementsByTagName("HEAD")[0].appendChild(eleScript);

使用jquery解决

$.ajax({ 

   url: http://跨域的dns/document!searchJSONResult.action, 

   type: "GET", 

   dataType: 'jsonp',   //主要是这里和原来的json改变了!

   jsonp: 'jsoncallback', 

})

2.使用HTML5的window.postMessage方法来跨域传送数据(只兼容IE8+、FireFox、Chrome、Opera等浏览器)window.postMessage(message,targetOrigin)  方法是html5新引进的特性,可以使用它来向其它的window对象发送消息,无论这个window对象是属于同源或不同源。

暂且先介绍这2种解决方法……其实还有很多其他的,之后再一一补充。

更多信息请查看网络编程
手机网站地址:简单谈谈json跨域
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map