getJSON()这个就是我今天要讲的jquery操作json数据的函数
jQuery.getJSON( url, [data,] [success(data, textStatus, jqXHR)] )
urlA string containing the URL to which the request is sent.
dataA map or string that is sent to the server with the request.
success(data, textStatus, jqXHR)A callback function that is executed if the request succeeds.
回调函数中接受三个参数,第一个书返回的数据,第二个是状态,第三个是jQuery的XMLHttpRequest,我们只使用到第一个参数。
$.each()是用来在回调函数中解析JSON数据的方法,下面是官方文档:
jQuery.each( collection, callback(indexInArray, valueOfElement) )
collectionThe object or array to iterate over.
callback(indexInArray, valueOfElement)The function that will be executed on every object
使用 AJAX 请求来获得 JSON 数据,并输出结果:
代码如下 | 复制代码 |
$("button").click(function(){ |
例
从 test.js 载入 JSON 数据并显示 JSON 数据中一个 name 字段数据:
代码如下 | 复制代码 |
$.getJSON("test.js", function(json){ |
$.getJSON()跨域请求
1,同一域名下和其他的请求可以是一样的
js:
代码如下 | 复制代码 |
var url="http://localhost:2589/a.ashx"; |
服务器返回字符串:
{"Name":"loogn","Age":23}
2,不同域名下
js:
代码如下 | 复制代码 |
var url="http://localhost:2589/a.ashx?callback=?"; |
服务器返回字符串:
jQuery1706543070425920333_1324445763158({"Name":"loogn","Age":23})
返回的字符串就是一个调用一个叫“jQuery1706543070425920333_1324445763158” 的函数,参数是{"Name":"loogn","Age":23}。
其实这个很长的函数名是请求路径中callback=?的作用,我想应该是这样的:$.getJSON方法生成一个对回调方法的引用的名字,换掉?。上面请求会变成
http://localhost:2589/a.ashx?callback=jQuery1706543070425920333_1324445763158&_=1324445763194,所服务器回返json时要处理一下,如:
代码如下 | 复制代码 |
string cb = context.Request["callback"]; |
参数名callback也可换成jsoncallback,我想是怕冲突吧,jsoncallback应该优先检测,没有再检测callback(没测试!!)
?也可是具体的函数名,这样回调函数就不能是匿名的了,用?生成只是jQuery为我们的一般操作提供的一个便利。
中文字符参数乱码问题 .
发生这个情况,首先查看Web服务器的编码。比如: 使用tomcat,可以查看
conf/server.xml 文件中
如果URIEncoding="GBK",后台代码如下:
Java代码
代码如下 | 复制代码 |
1. String test = request.getParameter("test"); // 前端传回来的中文字符 String test = request.getParameter("test"); // 前端传回来的中文字符 |
注意: ‘gbk', 'utf-8' 要小写
Java代码
解决方法1:
代码如下 | 复制代码 |
前台修改为 var data = {name:encodeURI($("#myName").val(),"utf-8"),pwd:"password"}; 后台修改为 String name=URLDecoder.decode(request.getParameter("name"),"utf-8"); |
解决方法2:
代码如下 | 复制代码 |
前台修改为 var data = {name:encodeURI($("#myName").val(),"utf-8"),pwd:"password"}; 后台修改为 String name=URLDecoder.decode(request.getParameter("name"),"utf-8"); |
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级