浅说Jquery中的GetJSon()
前两天一直在做js跨域的事儿,就用到了Jquery中的GetJSon(),他的用法,很独特,需要客户端跟服务器端的一起配合,才可以用,要不然回调方法返回不了值。
为什么说要客户端和服务器端一起配合呢?

1 $.getJSON("http://外网域名/test.aspx?callback=?,
2 {参数:参数值,参数:参数值……},
3 function(data){
4 alert(data);
5 }
6 );
其中callback可以换成其他的字符串,他后面的“?”不可以省略,因为Jquery要靠给“?”赋值,来执行回调方法的,当被执行时,callback会被随机赋值,比如赋值为ABCDGAFASAFD,那么要在服务器端接收这个值,就是request["callback"]。
那么现在说说服务器要返回什么样的数据,才算合格可以被客户端执行,应该返回这样的数据ABCDGAFASAFD({key1:value1,key2:value2}),这样的数据才会被客户端执行
说到这里,再说一下,他大概是怎么实现的,比如说我的html页面这样写到
1 <html>
2 <head>
3 <script type="javascript/text">
4 function callback(result)
5 {
6 alert(result.message);
7 }
8 </script>
9 </head>
10 <body>
11 <script src="http://www.A.com/handler.ashx"></script>
12 </body>
13 </html>
而后台代码handler.ashx中应该这样写道
1 context.Response.ContentType = "text/plain";
2 string result = "callback({message:'您好'})";
3 context.Response.Write(result);
这样一个跨域的代码就实现了,前台运行的效果如下