<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="Jquery跨域获得Json时invalid label错误的解决办法" id="card1">
<p> 游客</p><p>
标题:Jquery跨域获得Json时invalid label错误的解决办法<br/>
正文:<br/>
这两天用 Jquery 跨域取数据的时候，经常碰到 invalid label 这个错误，十分的郁闷，老是取不到服务器端发送回来的 json 值，一般跨域用到的两个方法为：$.ajax 和 $.getJson最后，仔细安静下来，细读 json 官方文档后发现这么一段：JSON数据是一种能很方便通过JavaScript解析的结构化数据。如果获取的数据文件存放在远程服务器上（域名不同，也就是跨域获取数据），则需要使用jsonp类型。使用这种类型的话，会创建一个查询字符串参数 callback=? ，这个参数会加在请求的URL后面。服务器端应当在JSON数据前加上回调函数名，以便完成一个有效的JSONP请求。如果要指定回调函数的参数名来取代默认的callback，可以通过设置$.ajax()的jsonp参数。其实jquery跨域的原理是通过外链 &amp;lt;script&amp;gt;  来实现的,然后在通过回调函数加上回调函数的参数来实现真正的跨域Jquery 在每次跨域发送请求时都会有callback这个参数，其实这个参数的值就是回调函数名称，所以，服务器端在发送json数据时，应该把这个参数放到前面，这个参数的值往往是随机生成的，如：jsonp1294734708682，同时也可以通过 $.ajax 方法设置 callback 方法的名称。明白了原理后，服务器端应该这样发送数据：string message = &amp;quot;jsonp1294734708682({\&amp;quot;userid\&amp;quot;:0,\&amp;quot;username\&amp;quot;:\&amp;quot;null\&amp;quot;})&amp;quot;;这样，json 数据 {\&amp;quot;userid\&amp;quot;:0,\&amp;quot;username\&amp;quot;:\&amp;quot;null\&amp;quot;} 就作为了 jsonp1294734708682 回调函数的一个参数跨域获得Json时invalid label的解决办法:服务器端在输出 Json 数据时，前面加上 callback 参数的值，如：jsonp1294734708682({\&amp;quot;userid\&amp;quot;:0,\&amp;quot;username\&amp;quot;:\&amp;quot;null\&amp;quot;})来源：http://www.cnblogs.c<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=424&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=424&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=424&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=424&amp;Page=2">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=424">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=424">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>