JQuery ajax支持get方式的跨域,采用了jsonp来完成。完成跨域请求的有两种方式实现。一种是使用Jquery ajax最底层的Api实现跨域的请求,而另外一种则是JQuery ajax的高级封装。jquery
$.ajax({ url:'http://www.mysite.com/demo.do', // 跨域URL type:'get', async:false, dataType:'jsonp', jsonp: 'jsoncallback', //默认callback data: mydata, time:5000, beforeSend:function(){ //jsonp 方式此方法不被触发。缘由多是dataType若是指定为jsonp的话,就已经不是ajax事件了 }, success:function(data){ //客户端jquery预先定义好的callback函数,成功获取跨域服务器上的json数据后,会动态执行这个callback函数 if(json.actionErrors.length!=0){ alert(json.actionErrors); } genDynamicContent(qsData,type,json); }, complete: function(XMLHttpRequest, textStatus){ $.unblockUI({ fadeOut: 10 }); }, error: function(xhr){ //jsonp 方式此方法不被触发 //请求出错处理 alert("请求出错(请检查相关度网络情况.)"); } });
$.getJSON("请求的路径=?参数", function(json){ //返回的结果 if(json.属性名==值){ // 执行代码 } });
Jsonp的基本原理就是:动态的添加一个一致的。Jsonp是一种脚本的注入(Script InJection)行为,因此,它会有必定的安全性的问题。ajax
同时须要注意Jsonp是不支持post跨域请求的。
json