`

JQuery+ajax+jsonp 跨域访问

    博客分类:
  • js
阅读更多

Jsonp(JSON with Padding)是资料格式 json 的一种“使用模式”,可以让网页从别的网域获取资料。

关于Jsonp更详细的资料请参考http://baike.baidu.com/view/2131174.htm,下面给出例子:

 

一.客户端

Html代码  收藏代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  5. <title>Insert title here</title>  
  6. <script type="text/javascript" src="resource/js/jquery-1.7.2.js"></script>  
  7. </head>  
  8. <script type="text/javascript">  
  9. $(function(){     
  10.     /*  
  11.     //简写形式,效果相同  
  12.     $.getJSON("http://app.example.com/base/json.do?sid=1494&busiId=101&jsonpCallback=?",  
  13.             function(data){  
  14.                 $("#showcontent").text("Result:"+data.result)  
  15.     });  
  16.     */  
  17.     $.ajax({  
  18.         type : "get",  
  19.         async:false,  
  20.         url : "http://app.example.com/base/json.do?sid=1494&busiId=101",  
  21.         dataType : "jsonp",//数据类型为jsonp  
  22.         jsonp: "jsonpCallback",//服务端用于接收callback调用的function名的参数  
  23.         success : function(data){  
  24.             $("#showcontent").text("Result:"+data.result)  
  25.         },  
  26.         error:function(){  
  27.             alert('fail');  
  28.         }  
  29.     });   
  30. });  
  31. </script>  
  32. <body>  
  33. <div id="showcontent">Result:</div>  
  34. </body>  
  35. </html>  

 二.服务器端

Java代码  收藏代码
  1. import java.io.IOException;  
  2. import java.io.PrintWriter;  
  3. import java.util.HashMap;  
  4. import java.util.Map;  
  5. import javax.servlet.http.HttpServletRequest;  
  6. import javax.servlet.http.HttpServletResponse;  
  7. import net.sf.json.JSONObject;  
  8. import org.springframework.stereotype.Controller;  
  9. import org.springframework.web.bind.annotation.RequestMapping;  
  10.   
  11. @Controller  
  12. public class ExchangeJsonController {  
  13.     @RequestMapping("/base/json.do")  
  14.     public void exchangeJson(HttpServletRequest request,HttpServletResponse response) {  
  15.        try {  
  16.         response.setContentType("text/plain");  
  17.         response.setHeader("Pragma""No-cache");  
  18.         response.setHeader("Cache-Control""no-cache");  
  19.         response.setDateHeader("Expires"0);  
  20.         Map<String,String> map = new HashMap<String,String>();   
  21.         map.put("result""content");  
  22.         PrintWriter out = response.getWriter();       
  23.         JSONObject resultJSON = JSONObject.fromObject(map); //根据需要拼装json  
  24.         String jsonpCallback = request.getParameter("jsonpCallback");//客户端请求参数  
  25.         out.println(jsonpCallback+"("+resultJSON.toString(1,1)+")");//返回jsonp格式数据  
  26.         out.flush();  
  27.         out.close();  
  28.       } catch (IOException e) {  
  29.        e.printStackTrace();  
  30.       }  
  31.     }  

分享到:
评论

相关推荐

    浅谈JQuery+ajax+jsonp 跨域访问

    下面小编就为大家带来一篇浅谈JQuery+ajax+jsonp 跨域访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    jquery下利用jsonp跨域访问实现方法

    本文将给您介绍如何使用getJSON来实现异步跨域提交表单

    AJax与Jsonp跨域访问问题小结

    本文给大家汇总介绍了JavaScript的AJax,JQuery的AJax以及利用jsonp实现跨域访问的问题,非常的细致全面,有需要的小伙伴可以参考下。

    轻松搞定jQuery+JSONP跨域请求的解决方案

    了解了jsonp之后,大家应该也都明白了,jsonp主要就是用来实现跨域的获取数据,今天我们就来详细探讨下如何在实际中应用jsonp实现跨域

    JSONP跨域GET请求解决Ajax跨域访问问题

    实现方法有多种,本例采用jQuery+Ajax,完成后,在本地调试了一切ok,但是部署到服务器上以后就出现问题了,后台服务调用没有响应,怎么回事?代码没怎么改动,唯一修改的地方就是jQuery的ajax方法中的url地址。难道...

    JSONP实现Ajax跨域访问

    主要从三方面来通过jsonp来实现ajax跨域问题: 1.javascript方法 2.jquery $.ajax方法 3.jquery $.getJSON方法 不看会后悔的!

    jquery的ajax和getJson跨域获取json数据的实现方法

    很多开发人员在使用jquery在前端和服务器端进行数据交互,所以很容易会认为在前端...1、通过jQuery的ajax进行跨域,这其实是采用的jsonp的方式来实现的。 jsonp是英文json with padding的缩写。它允许在服务器端生成

    Ajax结合Jsonp实例

    使用Jquery中的Aajx方法利用Jsonp方式访问豆瓣公开的api接口,跨域获取书籍信息。

    ajaxjsonp.js

    jQuery跨域访问,封装的ajax 代码,我使用的jQuery版本是1.11.3

    jquery中ajax处理跨域的三大方式

    HTML5中提供的XMLHTTPREQUEST Level2(及XHR2)已经实现了跨域访问。但ie10以下不支持 只需要在服务端填上响应头: header("Access-Control-Allow-Origin:*"); /*星号表示所有的域都可以接受,*/ header("Access...

    浅析JSONP解决Ajax跨域访问问题的思路详解

    实现方法有多种,本例采用jQuery+Ajax,完成后,在本地调试了一切ok,但是部署到服务器上以后就出现问题了,后台服务调用没有响应,怎么回事?代码没怎么改动,唯一修改的地方就是jQuery的ajax方法中的url地址。难道...

    ajax 设置Access-Control-Allow-Origin实现跨域访问

    ajax跨域访问是一个老问题了,解决方法很多,比较常用的是JSONP方法,JSONP方法是一种非官方方法,而且这种方法只支持GET方式,不如POST方式安全。 即使使用jquery的jsonp方法,type设为POST,也会自动变为GET。如果...

    jquery-jsonp.js

     3、于是可以判断,当前阶段如果想通过纯web端(ActiveX控件、服务端代理、属于未来的HTML5之Websocket等方式不算)跨域访问数据就只有一种可能,那就是在远程服务器上设法把数据装进js格式的文件里,供客户端调用...

    jQuery使用ajax跨域请求获取数据

    跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不可避免的需要进行跨域操作...

    ajax跨域请求js拒绝访问的解决方法

    求解决办法 代码如下: ajax{ url :“http://xxxx/app”, type:... 您可能感兴趣的文章:跨域请求之jQuery的ajax jsonp的使用解惑AJAX跨域请求json数据的实现方法jQuery.ajax 跨域请求webapi设置headers的解决方案JQuer

    用jQuery与JSONP轻松解决跨域访问的问题

    服务器端是不存在跨域安全限制的,所以通过本机服务器端通过类似httpclient方式完成“跨域访问”的工作,然后在浏览器端用AJAX获取本机服务器端“跨域访问”对应的url.来间接完成跨域访问也是可以的.但很显然开发量...

    jquery中ajax跨域方法实例分析

    JSONP是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问 方法一: jsonp之 getJSON js var url = http://localhost/mytest/jsonp_php.php?callback=?;...

Global site tag (gtag.js) - Google Analytics