Jsonp(JSON with Padding)是资料格式 json 的一种“使用模式”,可以让网页从别的网域获取资料。
关于Jsonp更详细的资料请参考http://baike.baidu.com/view/2131174.htm,下面给出例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script type="text/javascript" src="resource/js/jquery-1.7.2.js"></script> </head> <script type="text/javascript"> $(function(){ /* //简写形式,效果相同 $.getJSON("http://app.example.com/base/json.do?sid=1494&busiId=101&jsonpCallback=?", function(data){ $("#showcontent").text("Result:"+data.result) }); */ $.ajax({ type : "get", async:false, url : "http://app.example.com/base/json.do?sid=1494&busiId=101", dataType : "jsonp",//数据类型为jsonp jsonp: "jsonpCallback",//服务端用于接收callback调用的function名的参数 success : function(data){ $("#showcontent").text("Result:"+data.result) }, error:function(){ alert('fail'); } }); }); </script> <body> <div id="showcontent">Result:</div> </body> </html>
import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONObject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class ExchangeJsonController { @RequestMapping("/base/json.do") public void exchangeJson(HttpServletRequest request,HttpServletResponse response) { try { response.setContentType("text/plain"); response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); Map<String,String> map = new HashMap<String,String>(); map.put("result", "content"); PrintWriter out = response.getWriter(); JSONObject resultJSON = JSONObject.fromObject(map); //根据需要拼装json String jsonpCallback = request.getParameter("jsonpCallback");//客户端请求参数 out.println(jsonpCallback+"("+resultJSON.toString(1,1)+")");//返回jsonp格式数据 out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } } }
相关推荐
本文将详细介绍JQuery、ajax以及jsonp跨域访问的知识。 首先,jQuery作为一个广泛使用的JavaScript库,其提供的ajax方法极大地简化了HTTP通信操作。然而,当尝试通过ajax访问不同域下的资源时,就会遇到跨域限制...
在JavaScript的世界里,由于同源策略的限制,浏览器禁止了不同源之间进行AJAX通信,但JSONP(JSON with Padding)作为一种巧妙的方式,允许我们绕过这个限制,实现在jQuery中进行跨域请求。本篇文章将深入探讨JSONP...
JSONP(JSON with Padding)...总之,JSONP是jQuery中实现跨域访问的一种常见方法,尤其在不支持CORS的旧浏览器环境中非常有用。但随着技术的发展,CORS已成为更推荐的跨域解决方案,因为它提供了更多的控制和安全性。
总之,jQuery提供了一种简单易用的方式来处理跨域Ajax请求,无论是通过JSONP还是CORS。理解并熟练掌握这些技术,对于构建现代Web应用至关重要。在实际项目中,根据具体需求和安全考虑选择合适的方法,确保数据能够...
JSONP(JSON with Padding)是一种跨域数据交互协议,它...这个过程涉及到的知识点包括:JSONP工作原理、Jquery的ajax方法、跨域请求、URL编码以及API调用等。理解这些知识点对于进行前端开发和与各种API交互至关重要。
**Ajax + Servlet 跨域访问 (Jsonp技术)** 在Web开发中,浏览器的同源策略(Same-origin policy)限制了JavaScript对不同源(协议、域名、端口)的资源进行请求,这在一定程度上保障了安全性。然而,随着Web应用的...
在使用jQuery处理JSONP请求时,可以通过jQuery提供的Ajax方法来实现。而$.getJSON方法可以看作是$.ajax的一个简化版本,专门用于发送GET请求。当调用$.getJSON方法时,会自动在请求的URL中添加callback参数,而该...
在总结中,本文针对JavaScript中的AJAX技术、JQuery中的AJAX封装,以及JSONP跨域访问技术,进行了全面的分析和小结。内容涵盖了从创建XMLHttpRequest对象,到使用AJAX发起异步请求,再到通过JSONP实现跨域访问的一...
通过上述分析,我们可以总结出jQuery结合Ajax实现跨域请求的过程主要分为两部分:前台的Ajax调用以及后台对于JSONP请求的处理。前台通过设置`dataType`为`jsonp`,并通过`jsonp`选项指定一个回调函数名称,使得Ajax...
本文将详细讨论如何使用 jQuery 的 AJAX 和 `getJSON` 实现跨域访问。 首先,了解跨域的基本概念。跨域是指一个源(协议+域名+端口)下的文档或脚本尝试请求另一个源的资源时,浏览器会实施同源策略,阻止这种行为...
在IT行业中,跨域访问是Web开发中一个重要的概念,特别是在使用JavaScript、JSP、JSON以及前端库如jQuery时。本教程将详细讲解如何利用这些技术实现跨域数据交互。 首先,我们需要理解“跨域”这个术语。在浏览器的...
跨域访问是Web开发中一个常见的挑战,尤其是在进行Ajax异步请求时,浏览器的同源策略(Same-origin policy)会限制JavaScript从一个源获取另一个源的数据。为了解决这个问题,开发者通常采用JSONP(JSON with ...
实现方法有多种,本例采用jQuery+Ajax,完成后,在本地调试了一切ok,但是部署到服务器上以后就出现问题了,后台服务调用没有响应,怎么回事?代码没怎么改动,唯一修改的地方就是jQuery的ajax方法中的url地址。难道...
`是JSONP(JSON with Padding)机制,用于解决跨域访问的问题。服务器返回的JSON数据会被传递给`call`回调函数,这里我们将其命名为`function call(result){ setProvince(result); }`,接收并处理数据。 `...
### JSONP实现Ajax跨域访问 #### 一、引言 JSONP(JSON with Padding)是一种用于解决跨域数据访问的技术。由于同源策略(Same-Origin Policy)的存在,JavaScript/Ajax只能请求同源的资源,这给需要跨域访问数据...
在本实例中,我们将结合Ajax与Jsonp,通过Jquery库来访问豆瓣API,获取书籍信息。 **1. 同源策略** 首先,我们需要了解什么是同源策略。同源策略是浏览器的一项安全政策,它限制了来自不同源的“脚本”之间交互。这...
在 Web 开发中,由于浏览器的同源策略限制,JavaScript 无法直接跨域访问数据。为了解决这个问题,开发者常常使用 JSONP(JSON with Padding) 技术。ASP.NET 和 jQuery 结合使用 JSONP 可以实现跨域数据交互。本示例...
1. **jQuery的Ajax设置**:在使用Ajax进行跨域请求时,我们需要在`$.ajax()`方法中设置`dataType: 'jsonp'`。这告诉jQuery我们期望服务器返回JSON格式的数据,并通过JSONP机制来处理。 2. **JSONP原理**:JSONP的...