`

jQuery $.getJSON 跨域

阅读更多

jQuery $.getJSON 跨域

1楼
sunge 发表于:2009-8-12 12:09:43

由于Javascript 的安全机制,脚本是不允许跨域的 ( 安全的问题,浏览器默认是不支持跨域调用的 ) 。后来出现了一种叫 JSON with Padding  的技术,简称  JSONP  .(原理参考 http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/ ),应用 JSONP 可以实现 JSON 数据的跨域调用, jQuery getJSON 放在 1.2 版本中已经能够跨域获取数据了。

 

客户端:

 

<script type="text/javascript">  

  jQuery.getJSON("http://192.168.20.86/friend/getMyJsonData.jsp?jsoncallback=?", function(data) {  

    alert(data.name);  

  });  

</script>  
 

服务端:

 

<%@ page import="org.json.*"%>

String jsoncallback = request.getParameter("jsoncallback");

Map map = new LinkedHashMap();

... ...

map.put("groups", object);

out.println(jsoncallback+"("+new JSONObject(map).toString()+")");
 

注意:

1 这里调用的地址中jsoncallback=? 是关键的所在!其中,符号会被 Query 自动替换成其他的回调方法的名称,具体过程和原理我们这里不理会。我们关心的是 jsoncallback=? 起什么作用了?原来 jsoncallback=? 被替换后,会把方法名称传给服务器。我们在服务器端要做什么工作呢?服务器要接受参数 jsoncallback ,然后把 jsoncallback 的值作为 JSON 数据方法名称返回 .

2 服务器段把jsoncallback 的值作为方法名传回来 .

3 输出json 数据时候 { 之前的是 (

分享到:
评论

相关推荐

    解决JQurey跨域问题$.get|$.post|$.getJSON等等统统可跨域

    本篇将详细介绍如何解决jQuery跨域问题,涉及的方法包括$.get、$.post和$.getJSON等。 首先,我们需要理解什么是跨域。同源策略是浏览器为保障安全而实施的一项机制,它规定JavaScript只能访问与当前页面同源(协议...

    jquery 异步调用$.ajax() $.post() $.get()

    本篇文章将深入探讨jQuery中的异步调用方法,包括`$.ajax()`,`$.post()`和`$.get()`,以及它们在实际开发中的应用。 首先,`$.ajax()`是jQuery提供的最强大的异步数据请求函数,它支持多种HTTP请求方法,如GET、...

    jQuery使用$.get()方法从服务器文件载入数据实例

    在本文中,我们将深入了解jQuery中的$.get()方法,这是jQuery提供的一种用于从服务器文件载入数据的便捷方式。通过$.get()方法,可以快速的执行一个AJAX HTTP GET请求,这是一种无需页面重新加载即可从服务器获取...

    jquery $.getJSON()跨域请求

    $(function(){ $.getJSON(url,function(data){ alert &#40;data.Name&#41;; }) }); 服务器返回字符串: {“Name”:”loogn”,”Age”:23} 2,不同域名下 js: 代码如下: var url=”...

    jQuery的3种请求方式$.post,$.get,$.getJSON

    在jQuery库中,$.post, $.get和$.getJSON是用于执行AJAX(Asynchronous JavaScript and XML)请求的三种主要方法,这些方法使得前端与后端服务器进行异步数据交互成为可能,无需刷新整个页面。接下来,我们将详细...

    用原生JavaScript实现jQuery的$.getJSON的解决方法

    原生JavaScript实现jQuery的$.getJSON方法的知识点涵盖以下几个重要方面: 1. $.getJSON方法的作用: $.getJSON是jQuery库提供的一个方法,用于简化JSON数据的异步获取过程。它是一个便捷的AJAX方法,通常用于发送...

    通过jquery的$.getJSON做一个跨域ajax请求试验

    在本文中,我们将探讨如何使用jQuery的`$.getJSON`方法进行跨域Ajax请求,并通过一个简单的预约登记接口的示例来展示其实现过程。首先,理解`$.getJSON`是jQuery库提供的一个便捷方法,用于异步获取JSON格式的数据,...

    使用$.getJSON实现跨域ajax请求示例代码

    $.getJSON 是 jQuery 提供的一种 AJAX 方法,用于向服务器请求 JSON 数据并在数据加载成功后执行回调函数。这个方法特别适用于跨域请求,因为 JSONP(JSON with Padding)协议允许绕过同源策略,使得 JavaScript ...

    Ajax跨域查询完美解决通过$.getJSON()实现

    本篇文章将详细讲解如何利用jQuery的`$.getJSON()`方法来实现跨域查询。 **一、跨域的由来与限制** 跨域是浏览器为了保护用户的安全而设置的一种机制,它禁止了不同源(协议、域名或端口)之间的Ajax请求。这导致...

    JQuery中的$.getJSON 使用说明

    原型如下: jQuery.getJSON( url, [data], [callback] ) 跨域加载JSON数据。 url: 发送请求的地址 data : (可选) 待发送key/value参数 callback: (可选) 载入成功时的回调函数 主要用于客户端获取服务器JSON数据。...

    JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码

    在Web开发中,由于浏览器的安全策略,JavaScript通常不能直接进行跨域请求,但jQuery提供了$.ajax和$.getJSON方法,通过JSONP(JSON with Padding)技术来实现在不同源之间获取JSON数据。下面将详细介绍如何使用...

    jQuery Ajax之$.get()方法和$.post()方法

    为了提高性能,可以使用$.ajaxSetup()来设置全局的Ajax选项,或者使用$.getJSON()($.get()的JSON版本)和$.getScript()(加载并执行远程JavaScript)等简化的API。 总的来说,$.get()和$.post()是jQuery中实现...

    jQuery 封装Ajax

    jQuery的Ajax方法主要包括`$.ajax()`, `$.get()`, `$.post()`, `$.getJSON()`等。这些方法都提供了一种优雅的方式来发送和接收数据,同时提供了丰富的配置选项来处理各种情况。 ### 1. `$.ajax()` `$.ajax()`是...

    jQuery中$.ajax()和$.getJson()同步处理详解

    在处理JSONP(JSON with Padding)格式的跨域请求时,$.ajax()和$.getJson()方法也支持JSONP回调函数的自动处理。需要注意的是,JSONP请求不受同源策略限制,因此可以用来从其他域请求数据,但安全性和数据保护仍然...

    用JQuery里的getJSON函数进行跨域远程调用

    这是一个前端后端通过JQuery的getJSON函数交互json数据的例子。 前端网页是front.html,后端处理的模块是back.jsp 把back.jsp、front.html及jquery-1.8.3.min.js部署在Tomcat的webapps的ROOT下,通过在浏览器输入...

Global site tag (gtag.js) - Google Analytics