Heim  >  Artikel  >  Web-Frontend  >  Jquery跨域获得Json时invalid label错误的解决办法_jquery

Jquery跨域获得Json时invalid label错误的解决办法_jquery

WBOY
WBOYOriginal
2016-05-16 18:12:17753Durchsuche

最后,仔细安静下来,细读 json 官方文档后发现这么一段:

JSON数据是一种能很方便通过JavaScript解析的结构化数据。如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型。使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面。服务器端应当在JSON数据前加上回调函数名,以便完成一个有效的JSONP请求。如果要指定回调函数的参数名来取代默认的callback,可以通过设置$.ajax()的jsonp参数。

其实jquery跨域的原理是通过外链 <script> 来实现的,然后在通过回调函数加上回调函数的参数来实现真正的跨域 <br><br>Jquery 在每次跨域发送请求时都会有callback这个参数,其实这个参数的值就是回调函数名称,所以,服务器端在发送json数据时,应该把这个参数放到前面,这个参数的值往往是随机生成的,如:jsonp1294734708682,同时也可以通过 $.ajax 方法设置 callback 方法的名称。明白了原理后,服务器端应该这样发送数据: <br><br>string message = "jsonp1294734708682({\"userid\":0,\"username\":\"null\"})"; <br><br>这样,json 数据 {\"userid\":0,\"username\":\"null\"} 就作为了 jsonp1294734708682 回调函数的一个参数 <br><br>跨域获得Json时invalid label的解决办法: <br><br>服务器端在输出 Json 数据时,前面加上 callback 参数的值,如:jsonp1294734708682({\"userid\":0,\"username\":\"null\"}) </script>

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn