理解JSONP
来源:互联网 发布:算法专利申请 编辑:程序博客网 时间:2024/05/29 12:27
1.AJAX
ajax是基于XMLHttpRequest 的,是不能跨域的。
request = new XMLHttpRequest();request.onreadystatechange = function () { /*表示XMLHttpRequest对象的状态:0:未初始化。对象已创建,未调用open; 1:open方法成功调用,但Send方法未调用; 2:send方法已经调用,尚未开始接受数据; 3:正在接受数据。Http响应头信息已经接受,但尚未接收完成; 4:完成,即响应数据接受完成。*/ if (request.readyState == 4) { if (request.status == 200) { console.info(request.responseType); console.info(request.responseXML); console.info(request.responseText); //alert(request.responseXML); } } if (request.readyState == 0) { console.info("未初始化。对象已创建,未调用open"); } if (request.readyState == 1) { console.info("send方法已经调用,尚未开始接受数据"); } if (request.readyState == 3) { console.info("正在接受数据。Http响应头信息已经接受,但尚未接收完成") }};var url = "http://localhost:8080/apphealthcheckstatus.jsp";//可以选择同步还是异步request.open("GET", url, true);request.send(null);
2.JSONP
ajax请求不能跨域,但是script可以跨域。只是返回的数据只能当作是js代码执行。所以JSONP的思想就是通过动态构造script标签跨域请求,其返回的数据一般是js的函数调用。如:
//script标签解决跨域问题//src:url(跨域地址)?参数列表n=值n&callback=callbackMethodfunction callbackMethod(data){ console.info(data);}function createScript(src) { var element = document.createElement("script"); element.src = src; element.language = "javascript"; element.type = "text/javascript"; document.head.appendChild(element);}createScript("http://abc.beta1.fn:8080/apphealthcheckstatus.jsp?callback=callbackMethod");通常我们的请求调用返回值是这样的callbackMethod(参数1,参数2),callbackMethod是通过callback参数传递给后端服务的,callback参数不是固定的,是自己定义的,只要后端服务能识别,名字可以随便起。
阅读全文
0 0
- JSONP理解
- JSONP理解
- 理解JSONP
- 关于JSONP的理解
- JSONP的理解
- 关于jsonp的理解
- 关于jsonp的理解
- 关于JSONP的理解
- JSON和JSONP理解
- JSON JSONP理解
- jsonp 跨站的理解
- 从原理上理解jsonp
- 深入理解jsonp解决跨域访问
- 简单透彻理解JSONP原理及使用
- 对于JSON和JSONP的理解
- ajax中关于jsonp协议的理解
- jsonp易于理解的简洁实例
- 简单透彻理解JSONP原理及使用
- Java四种引用包括强引用,软引用,弱引用,虚引用
- Ajax工作原理
- 第五周 【项目1
- 线下活动 | 揭秘大数据背后的京东虚拟平台(免费报名中)
- 如何为运行的 ARM Linux 启用 LAD2.3 版本的诊断扩展
- 理解JSONP
- 北京 | PMCAFF年度老友会本周开始,老伙伴们聚起来!
- 【创业公司的机遇与挑战】如何在1年内从产品助理到产品高管?
- 年轻人,别动不动就想搞个“大社交”,工具型社交才是正路子
- 活动结束|金融圈第19期分享:数据系统如何防范金融非统性风险?
- 百度推送SDK之管理控制台(二)
- oracle报错:ORA-39213: Metadata processing is not available
- Bootstrap在线设计|快速原型构建|可视化布局
- jquery.validate+jquery.form提交的三种方式