jquery下利用jsonp跨域访问实现方法
2012-07-30 12:35
761 查看
客户端的跨域访问,可以通过jsonp方式来实现,jquery提供了跨域访问的方法,jQuery.ajax()支持get方式的跨域。当然支持跨域还需要服务器端相应的处理。
$.ajax({
async:false,
url: '', // 跨域URL
type: 'GET',
dataType: 'jsonp',
jsonp: 'jsoncallback', //默认callback
data: mydata, //请求数据
timeout: 5000,
beforeSend: function(){ //jsonp 方式此方法不被触发。原因可能是dataType如果指定为jsonp的话,就已经不是ajax事件了
},
success: function (json) { //客户端jquery预先定义好的callback函数,成功获取跨域服务器上的json数据后,会动态执行这个callback函数
if(json.actionErrors.length!=0){
alert(json.actionErrors);
}
},
complete: function(XMLHttpRequest, textStatus){
},
error: function(xhr){
//jsonp 方式此方法不被触发
//请求出错处理
alert("请求出错(请检查相关度网络状况.)");
}
});
复制代码 代码如下:
$.getJSON(url+"?callback=?",
function(json){
});
这种方式其实是上例$.ajax({..}) 的一种高级封装。
在服务端通过获得callback参数(如:jsonp*****)得到jQuery端随后要回调的
然后返回类似:"jsonp*****("+要返回的json数组+")";
jquery就会通过回调方法动态加载调用这个:jsonp*****(json数组);
这样就达到了跨域数据交换的目的.
JSONP是一种脚本注入(Script Injection)行为,所以也有一定的安全隐患。
注意:jquey是不支持post方式跨域的。
详细出处参考:http://www.jb51.net/article/24398.htm
$.ajax({
async:false,
url: '', // 跨域URL
type: 'GET',
dataType: 'jsonp',
jsonp: 'jsoncallback', //默认callback
data: mydata, //请求数据
timeout: 5000,
beforeSend: function(){ //jsonp 方式此方法不被触发。原因可能是dataType如果指定为jsonp的话,就已经不是ajax事件了
},
success: function (json) { //客户端jquery预先定义好的callback函数,成功获取跨域服务器上的json数据后,会动态执行这个callback函数
if(json.actionErrors.length!=0){
alert(json.actionErrors);
}
},
complete: function(XMLHttpRequest, textStatus){
},
error: function(xhr){
//jsonp 方式此方法不被触发
//请求出错处理
alert("请求出错(请检查相关度网络状况.)");
}
});
复制代码 代码如下:
$.getJSON(url+"?callback=?",
function(json){
});
这种方式其实是上例$.ajax({..}) 的一种高级封装。
在服务端通过获得callback参数(如:jsonp*****)得到jQuery端随后要回调的
然后返回类似:"jsonp*****("+要返回的json数组+")";
jquery就会通过回调方法动态加载调用这个:jsonp*****(json数组);
这样就达到了跨域数据交换的目的.
JSONP是一种脚本注入(Script Injection)行为,所以也有一定的安全隐患。
注意:jquey是不支持post方式跨域的。
详细出处参考:http://www.jb51.net/article/24398.htm
相关文章推荐
- jquery下利用jsonp跨域访问实现方法
- 利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据
- 利用jquery的ajax实现跨域,内部其实是jsonp协议了,不是XHRhttp协议
- 跨域访问:jquery ajax jsonp的实现方法(jsp和action方式)
- 跨域访问:jquery ajax jsonp的实现方法(jsp和action方式)
- jQuery使用JSONP实现跨域获取数据的三种方法详解
- 前端跨域问题相关知识详解(原生js和jquery两种方法实现jsonp跨域)
- jQuery使用JSONP实现跨域获取数据的三种方法详解
- 关于JQuery 中$.ajax函数利用jsonp实现Ajax跨域请求ASP.NET的WebService成功获取数据的案例
- jQuery+Ajax+jsonp+java实现跨域访问
- jsonp jquery jersey 实现跨域访问
- jquery jsonp 调用jersey实现跨域访问
- jquery:利用jsonp跨域访问--转载
- 利用jsonp实现http 的跨域访问
- Jquery之AJAX COOKIES跨域请求 - JSONP实现方法
- jquery:利用jsonp跨域访问--转载
- jquery实现跨域访问的方法
- 利用CORS配置实现jQuery对WebApi及MVC的跨域访问
- 利用jquery 的jsonp 进行跨域访问