Javascript无法跨域访问,这是Javascript的安全机制,跨域访问的定义可以这么说,www.google.com域下的脚本不能访问www.amazon.com域,www.google.com当然也不能访问子域名site.google.com域。JS如果要跨域访问数据,AJAX的http请求跨域数据会报错。如果需要用JS请求跨域的数据,JSON是很好的选择。跨域获取JSON并不是异步请求,而是应用script标签的src属性获取到服务器生成的JSON格式化文本,例:
<script type="text/javascript"> function jsonCallback(resp) { //jsonCallback是下面script标签回调的,resp将返回的JSON作为参数传递 var entris = resp.feed.entry } </script> <script type="text/javascript" src="http://fanlog.blogspot.com/feeds/posts/default/?max-results=10&start-index=1&alt=json-in-script&callback=jsonCallback"></script>
script标签src的地址,是blogger API返回的JSON格式化数据,数据格式如下:
jsonCallback({"feed":["content",{"$t":"第一个标题"}],["content",{"$t":"第二个标题"}], .....
JSON数据格式可以像访问JS对象一样去访问,例如jsonCallback.feed[0].content.$t返回的值就是"第一个标题","[]"符号表示数组对象,访问第二个"[]"即为jsonCallback.feed[1]。
jQuery有一个getJSON()的方法可以直接访问JSON数据。prototype貌似米有。
No comments:
Post a Comment