JSONP跨域
来源:互联网 发布:windows界面设计规范 编辑:程序博客网 时间:2024/06/06 10:58
JSONP (JSON with Padding)是一个简单高效的跨域方式,HTML中的script标签可以加载并执行其他域的javascript,于是我们可以通过script标 记来动态加载其他域的资源。例如我要从域A的页面pageA加载域B的数据,那么在域B的页面pageB中我以JavaScript的形式声明pageA 需要的数据,然后在 pageA中用script标签把pageB加载进来,那么pageB中的脚本就会得以执行。JSONP在此基础上加入了回调函数,pageB加载完之后 会执行pageA中定义的函数,所需要的数据会以参数的形式传递给该函数。JSONP易于实现,但是也会存在一些安全隐患,如果第三方的脚本随意地执行, 那么它就可以篡改页面内容,截获敏感数据。但是在受信任的双方传递数据,JSONP是非常合适的选择。接下来通过一个小例子,讲解下JSONP的跨域方式。
域A为:http://a.com, pageA为:a.html,具体代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>测试JSONP跨域</title><script src="http://a.com/js/jq.js"></script></head><body><div><div align="center"><h3>测试JSONP是否成功?</h3><p id="mydata">here</p></div></div></body></html><script type="text/javascript">$.getJSON("http://b.com/b.php?callBack=?", {username: 'nieyanlong', password:'123456'}, function(result){alert(result.content); $("#mydata").html(result.content);});</script>
域B为:http://b.com, pageB为:b.php,具体代码如下:
<?php$returnData = array('content' => 'success', 'content' => "{$_GET['username']}测试JSONP跨域成功");echo $_GET['callBack'] . '(' . json_encode($returnData) . ')';?>
- json、jsonp、jsonp跨域
- JSONP跨域
- JSONP跨域
- Jsonp 跨域
- jsonp 跨域
- jsonp跨域
- jsonp 跨域
- jsonP跨域
- jsonp跨域
- JSONP跨域
- 跨域 - JSONP
- jsonp跨域
- 跨域jsonp
- 跨域-JSONP
- jsonp跨域
- Jsonp跨域
- jsonp跨域
- jsonp跨域
- string和CString 的比较
- servlet
- 正则表达式 匹配 大于0小于1
- Can't connect to MySQL server on 'ip' (13)
- 从《魔兽争霸3》中导出模型到3DMax
- JSONP跨域
- SharePoint 部分缺点
- string 用法小结
- MFC源代码的头文件源文件切换,以及源代码的挖掘和学习
- 引用类型数组的初始化
- 线HTML编辑器KindEditor
- 微软资深软件工程师:阅读代码真的很难
- 一种真正意义上的Session劫持
- iPhone消息推送机制实现总结