同源策略阐明
阐明: 浏览器出于安全性的思考要求发动Ajax时,必须满足同源策略的规定.
要求:
1.协定名称雷同 http/https
2.域名雷同
3.端口号雷同
如果上述的3条违反任意的一条即违反了同源策略.称之为跨域拜访. 反之为同域拜访。
解决方案一、JSONP跨域原理阐明
JSONP(JSON with Padding)是JSON的一种“应用模式”,可用于解决支流浏览器的跨域数据拜访的问题。因为同源策略,一般来说 A服务器的网页无奈与不是 A的服务器沟通,而 HTML 的<script> 元素是一个例外。利用 <script> 元素的这个凋谢策略,网页能够失去从其余起源动静产生的 JSON 材料,而这种应用模式就是所谓的 JSONP。用 JSONP 抓到的材料并不是 JSON,而是任意的JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。
1).利用javaScript中的src属性 实现跨域.
2).自定义回调函数
<script type="text/javascript"> /JS是解释执行的语言 / /定义回调函数 / function hello(data){ alert(data.name); } </script>
3).将返回值后果进行非凡的格局封装: callback(json)
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>测试JSON跨域问题</title> <script type="text/javascript"> /*JS是解释执行的语言 */ /*定义回调函数 */ function hello(data){ alert(data.name); } </script> <!--该json始终保留到浏览器中期待调用,然而没有函数名称无奈调用 --> <script type="text/javascript" src="http://manage.jt.com/test.json"></script> <script type="text/javascript" src="http://manage.jt.com/js/jquery-easyui-1.4.1/jquery.min.js"></script></head><body> <h1>JS跨域问题</h1> </script></body></html>
JSONP API学习
1).编辑页面,发动跨域申请
jsonp只能反对get申请的起因是:src属性只能反对get申请
- 编辑JSONPControlle
3.JSONP高级API