使用jquery实现跨域访问
来源:互联网 发布:苹果电脑的ppt软件 编辑:程序博客网 时间:2024/05/29 15:35
因为项目需要,需要跨域获取数据,现提供2种方法(两种方法都是只能用get,使用jsoup):
什么是jsonp格式呢?API原文:如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型。使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面。服务器端应当在JSON数据前加上回调函数名,以便完成一个有效的JSONP请求。意思就是远程服务端需要对返回的数据做下处理,根据客户端提交的callback的参数,返回一个callback(json)的数据,而客户端将会用script的方式处理返回数据,来对json数据做处理。JQuery.getJSON也同样支持jsonp的数据方式调用。
第一种ajax请求:
/***ajax跨域访问(需要后台操作)*callbackparam:指定参数名*success_jsonpCallback:指定返回function对象名*/function ajaxFC(){var url="http://172.17.16.25:8380/suite/ForwordToPlugINSingleCodeTableAction.do?method=fetchEmbedUI&codeTableName=CURRENCY&key=A12B561B91C8CD9CD3C47650AAF9064B&response2curWindow=true";$.ajax({type : "get",url : url,dataType : "jsonp",jsonp: "callbackparam",//服务端用于接收callback调用的function名的参数jsonpCallback:"success_jsonpCallback",//callback的function名称success : function(json){$("#abc").append($("<option/>").val("").text("--- Please Select ---"));for(var id in json){$("#abc").append($("<option/>").val(json[id]).text(json[id]));//alert(json[0][id])}},error:function(){alert('fail');}})}
真正返回的地址:http://172.17.16.25:8380/suite/ForwordToPlugINSingleCodeTableAction.do?method=fetchEmbedUI&callbackparam=success_jsonpCallback
真正返回的参数:success_jsonpCallback({"cc0":"EUR","cc1":"GBP","cc2":"HKD","cc3":"RMB","cc4":"USD"})
第二种$.getJSON:
/***getJson跨域访问*返回URL:http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=jQuery1910270406411231093_1372650308478&tags=mount+rainier&tagmode=any&format=json&_=1372650308479*jsoncallback指定参数名*/function getJson1(){ var flickerAPI = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?"; $.getJSON( flickerAPI, { tags: "mount rainier", tagmode: "any", format: "json" }) .done(function( data ) { $.each( data.items, function( i, item ) { $( "<img/>" ).attr( "src", item.media.m ).appendTo( "#images" ); if ( i === 3 ) { return false; } }); });}
后台:
String codeTableName = request.getParameter("codeTableName"); CodeTableManager manager = new CodeTableManager(); //get all common codes CommonCode[] codes = manager.getCodeTable(codeTableName).getCommonCodes(); Map<String,Object> result=new TreeMap<String,Object>(); Collections.sort(Arrays.asList(codes)); int i = 0 ; for(CommonCode cc :codes){ result.put("cc" + i, cc.getCode()); i++; } ObjectMapper objectMapper=new ObjectMapper(); String out = objectMapper.writeValueAsString(result); String jsonCallBack = request.getParameter("callbackparam"); response.setContentType("text/xml;charset=utf-8"); response.getWriter().print(jsonCallBack + "("+out+")"); return mapping.findForward("");
下载连接:JqueryCrossDomainRequest
- 使用jquery实现跨域访问
- 跨域访问Jquery实现
- jQuery实现跨域访问
- jquery实现跨域访问
- jquery实现ajax跨域访问
- Struts2+Jquery实现跨域访问
- jsonp jquery jersey 实现跨域访问
- jquery实现跨域访问的方法
- jquery ajax实现跨域访问
- jsonp jquery jersey 实现跨域访问
- [jQuery]Ajax实现跨域访问JSON
- 使用JQUERY解决跨域访问
- Jquery使用jsonp跨域访问
- 使用jquery-cookie实现最近访问功能
- jQuery 跨域访问
- jquery跨域访问
- jquery,跨域访问
- Jquery 跨域访问
- 神十返回舱着陆惊险一幕:靠的就是实力!
- 为什么写技术博客对新人如此重要?
- Linux学习收藏
- listview工具类:上拉刷新+下拉刷新
- Oracle批量执行SQL文件
- 使用jquery实现跨域访问
- 了解苹果购买WiFiSLAM什么下一步
- 通过NTP协议实现的网络对时程序
- windows 如何查看端口占用情况?
- layout下的文件名必须是小写否则android工程不能自动生成R.java
- Mac下安装apk(命令形式)
- 用python写1个简单的聊天服务器3-目录结构
- Log4j配置文件配置说明
- HUE beeswax中文显示问题的解决方案