关于JSONP的理解
来源:互联网 发布:淘宝店铺标志下载 编辑:程序博客网 时间:2024/05/17 08:58
JSONP的实质是通过跨域请求,返回给页面一个结果,这个请求没有js端类似success的回调函数,其功能类似于:
<script type="text/javascript" src="XXX"></script>
即引入一个字符串,并执行这个字符串,不过好像引入js这种文件的话,不会执行。当然可以通过eval来执行
两种实现:
Ext.create('Ext.data.Store', {
proxy: {
type: 'jsonp',
extraParams:{"params" : Ext.encode(params)},
url : selectURL
},
autoLoad: true
});
/*
jQuery.ajax({
url : updateURL,
data : {"params" : Ext.encode(params)},
type : "get",
cache : false,
dataType : "jsonp",
async: false
});
*/
后台返回的字串:
comboxPBStoreData_JSONP=[{"no":"1234567","name":"AAA"},{"no":"1234568","name":"BBB"}]
这样,js中就相当于多了个全局变量comboxPBStoreData_JSONP,可以直接用来使用,当然返回字符串也可以是“MessageBox('AAA');”这种,这样等这个返回字串被处理时,就会弹出一个对话框,这种方法可以从另一个角度部分解决JSONP没有回调的弊端,至少页面可以有响应,知道处理结果
正确的用法:
前台
jQuery.ajax({
url : updateURL,
data : {"params" : Ext.encode(params)},
type : "get",
cache : false,
dataType : "jsonp",
async: false,
success : function(jsonstr){
var result = Ext.decode(jsonstr);
}
});
后台:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
//获取参数
String callback = request.getParameter("callback");
JSONObject obj = new JSONObject();
obj.put("addVersion", adds);
response.getWriter().write(callback+"('"+obj.toJSONString()+"')");
注意:1、默认使用callback,jquery自动添加的
2、response返回时,必须拼装成fun('a')这种形式,'a'作为字符串,即success的jsonstr的值。
3、如果不使用callback,无法在前台收到回调处理,进不了success
- 关于JSONP的理解
- 关于jsonp的理解
- 关于jsonp的理解
- 关于JSONP的理解
- ajax中关于jsonp协议的理解
- JSONP的理解
- 关于JSONP的问题
- jsonp 跨站的理解
- 关于jsonp的同步问题
- 关于jsonp的一些事!!!
- 关于ajax通过jsonp进行跨域访问的新理解
- JSONP理解
- JSONP理解
- 理解JSONP
- 关于JSONP的原理和JQ中使用JSONP
- 关于JSONP的原理和JQ中使用JSONP
- 对于JSON和JSONP的理解
- jsonp易于理解的简洁实例
- sitemesh包装工具
- 关于如何在pc端使用github
- 关于JSON的使用
- JAVA导出xls文件
- 关于线程池
- 关于JSONP的理解
- 关于对XML的处理
- 关于打开tomcat的远程调试功能
- 收藏的博文与工具
- NYOJ 75 日期计算
- android 之popupWindow 在指定位置上的显示
- C语言内存管理
- rabbitmq linux安装
- 如何在iOS地图上高效的显示大量数据