`
hanqunfeng
  • 浏览: 1543396 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JQuery+ajax+jsonp 跨域访问

 
阅读更多

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();
      }
    }
}

 

分享到:
评论
2 楼 wanglei880128 2015-10-20  
1 楼 lingyun6100 2014-06-23  
案例成功!十分感谢!!!

相关推荐

    浅谈JQuery+ajax+jsonp 跨域访问

    本文将详细介绍JQuery、ajax以及jsonp跨域访问的知识。 首先,jQuery作为一个广泛使用的JavaScript库,其提供的ajax方法极大地简化了HTTP通信操作。然而,当尝试通过ajax访问不同域下的资源时,就会遇到跨域限制...

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

    在JavaScript的世界里,由于同源策略的限制,浏览器禁止了不同源之间进行AJAX通信,但JSONP(JSON with Padding)作为一种巧妙的方式,允许我们绕过这个限制,实现在jQuery中进行跨域请求。本篇文章将深入探讨JSONP...

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

    JSONP(JSON with Padding)...总之,JSONP是jQuery中实现跨域访问的一种常见方法,尤其在不支持CORS的旧浏览器环境中非常有用。但随着技术的发展,CORS已成为更推荐的跨域解决方案,因为它提供了更多的控制和安全性。

    Jquery跨域Ajax请求测试

    总之,jQuery提供了一种简单易用的方式来处理跨域Ajax请求,无论是通过JSONP还是CORS。理解并熟练掌握这些技术,对于构建现代Web应用至关重要。在实际项目中,根据具体需求和安全考虑选择合适的方法,确保数据能够...

    Jquery与ajax用JSONP方式获取新浪短网址

    JSONP(JSON with Padding)是一种跨域数据交互协议,它...这个过程涉及到的知识点包括:JSONP工作原理、Jquery的ajax方法、跨域请求、URL编码以及API调用等。理解这些知识点对于进行前端开发和与各种API交互至关重要。

    Ajax + Servlet 跨域访问(Jsonp技术)

    **Ajax + Servlet 跨域访问 (Jsonp技术)** 在Web开发中,浏览器的同源策略(Same-origin policy)限制了JavaScript对不同源(协议、域名、端口)的资源进行请求,这在一定程度上保障了安全性。然而,随着Web应用的...

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

    在使用jQuery处理JSONP请求时,可以通过jQuery提供的Ajax方法来实现。而$.getJSON方法可以看作是$.ajax的一个简化版本,专门用于发送GET请求。当调用$.getJSON方法时,会自动在请求的URL中添加callback参数,而该...

    AJax与Jsonp跨域访问问题小结

    在总结中,本文针对JavaScript中的AJAX技术、JQuery中的AJAX封装,以及JSONP跨域访问技术,进行了全面的分析和小结。内容涵盖了从创建XMLHttpRequest对象,到使用AJAX发起异步请求,再到通过JSONP实现跨域访问的一...

    jquery+ajax实现跨域请求的方法

    通过上述分析,我们可以总结出jQuery结合Ajax实现跨域请求的过程主要分为两部分:前台的Ajax调用以及后台对于JSONP请求的处理。前台通过设置`dataType`为`jsonp`,并通过`jsonp`选项指定一个回调函数名称,使得Ajax...

    jquery的ajax和getJson跨域.docx

    本文将详细讨论如何使用 jQuery 的 AJAX 和 `getJSON` 实现跨域访问。 首先,了解跨域的基本概念。跨域是指一个源(协议+域名+端口)下的文档或脚本尝试请求另一个源的资源时,浏览器会实施同源策略,阻止这种行为...

    js+jsp+json+tomcat跨域访问

    在IT行业中,跨域访问是Web开发中一个重要的概念,特别是在使用JavaScript、JSP、JSON以及前端库如jQuery时。本教程将详细讲解如何利用这些技术实现跨域数据交互。 首先,我们需要理解“跨域”这个术语。在浏览器的...

    跨域访问解决方法-jsonp

    跨域访问是Web开发中一个常见的挑战,尤其是在进行Ajax异步请求时,浏览器的同源策略(Same-origin policy)会限制JavaScript从一个源获取另一个源的数据。为了解决这个问题,开发者通常采用JSONP(JSON with ...

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

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

    ajax+jquery二级联动实现

    `是JSONP(JSON with Padding)机制,用于解决跨域访问的问题。服务器返回的JSON数据会被传递给`call`回调函数,这里我们将其命名为`function call(result){ setProvince(result); }`,接收并处理数据。 `...

    JSONP实现Ajax跨域访问

    ### JSONP实现Ajax跨域访问 #### 一、引言 JSONP(JSON with Padding)是一种用于解决跨域数据访问的技术。由于同源策略(Same-Origin Policy)的存在,JavaScript/Ajax只能请求同源的资源,这给需要跨域访问数据...

    Ajax结合Jsonp实例

    在本实例中,我们将结合Ajax与Jsonp,通过Jquery库来访问豆瓣API,获取书籍信息。 **1. 同源策略** 首先,我们需要了解什么是同源策略。同源策略是浏览器的一项安全政策,它限制了来自不同源的“脚本”之间交互。这...

    ASPNET_JSONP_demo(jq跨域)

    在 Web 开发中,由于浏览器的同源策略限制,JavaScript 无法直接跨域访问数据。为了解决这个问题,开发者常常使用 JSONP(JSON with Padding) 技术。ASP.NET 和 jQuery 结合使用 JSONP 可以实现跨域数据交互。本示例...

    jquery ajax跨域html前台 php后台

    1. **jQuery的Ajax设置**:在使用Ajax进行跨域请求时,我们需要在`$.ajax()`方法中设置`dataType: 'jsonp'`。这告诉jQuery我们期望服务器返回JSON格式的数据,并通过JSONP机制来处理。 2. **JSONP原理**:JSONP的...

Global site tag (gtag.js) - Google Analytics