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://loc**alh*ost:2589/a.ashx"; |
|
服务器返回字符串:
{"Name":"loogn","Age":23}
2,不同域名下
js:
| 代码如下 | 复制代码 |
|
var url="http://loc**alh*ost:2589/a.ashx?callback=?"; |
|
服务器返回字符串:
jQuery1706543070425920333_1324445763158({"Name":"loogn","Age":23})
返回的字符串就是一个调用一个叫“jQuery1706543070425920333_1324445763158” 的函数,参数是{"Name":"loogn","Age":23}。
其实这个很长的函数名是请求路径中callback=?的作用,我想应该是这样的:$.getJSON方法生成一个对回调方法的引用的名字,换掉?。上面请求会变成
http://loc**alh*ost: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"); |
|
Outlook网页版登录入口-Outlook网页版详细使用教程
拷贝漫画正版app安卓最新版本下载安装-拷贝漫画官方正版免费下载
免费下载电影的软件有哪些-最新免费电影下载软件大全
画世界pro下载安卓官方正版-画世界pro下载安装免费最新版
pubg国际版地铁逃生最新下载-pubg国际版手游安装包下载 pubg国际版地铁逃生正式服下载-pubg国际版手游安卓版下载 pubg国际版地铁逃生体验服下载-pubg国际版手游官方下载 pubg国际版地铁逃生正版下载-pubg国际版手游免费下载 pubg国际版地铁逃生完整版下载-pubg国际版手游最新版下载
苹果免费看电视剧的软件有哪些-苹果免费追剧软件推荐
猪笼城寨手游
猪笼城寨游戏是非常好玩的一款模拟经营类型的手游,在这里玩家们
商道高手vivo版本
商道高手vivo版是一款商战题材的模拟经营手游,游戏画面精美
我在大清当皇帝手游
我在大清当皇帝手游是一款以清代为历史的模拟类手游,相信玩家们
解忧小村落最新版2024
解忧小村落游戏是非常好玩的一款休闲放置经营类型的手游,在这里
洋果子店rose2中文版
洋果子店rose2中文版是一款非常好玩的模拟经营手游,精美的