有关jsAjax和jqAjax的问题,先谢谢了!

lvyichang 2012-04-26 02:15:26
获取json数据是在以下的连接:
http://services.digg.com/stories/top?appkey=http%3A%2F%2Fmashup.com&type=javascript&callback=?
这没问题!

问题是用jsAjax访问是拒绝访问,
而用jqAjax就可以访问的,
1.这是什么道理?
2.怎样用jsAjax访问?

以下是代码:
jsAjax代码:提示拒绝访问
        <script type ="text/javascript">
onload = function() {
var xhr = new XMLHttpRequest();
var url = "http://services.digg.com/stories/top?appkey=http%3A%2F%2Fmashup.com&type=javascript&callback=?";
xhr.open("get", url, true);

xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var jsonData = eval("(" + xhr.responseText + ")"); //得到JSON对象
alert(jsonData.stories.length); //得到json数据数量
//......
}
}
}
xhr.send();
}
</script>

jqAjax代码:访问没问题,得到数值是15
    <script type="text/javascript">
$().ready(function() {
var url = "http://services.digg.com/stories/top?appkey=http%3A%2F%2Fmashup.com&type=javascript&callback=?";
$.getJSON(url, function(data) {
alert(data.stories.length);
});
});
</script>
...全文
134 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
.云哲. 2012-05-03
  • 打赏
  • 举报
回复
window.load=function()
{

}
也有可能是js兼容性。
wzhiyuan 2012-04-26
  • 打赏
  • 举报
回复
为了用户安全浏览器都对跨域访问有限制
但是如果返回的是JSON格式 可以用动态添加scr ipt,并指定src=跨域URL,然后来访问新增加的script中的对象。这是一种游览器hack的方案,属于奇技淫巧。
至于jquery getjson 是不是用了这种技巧,没研究过,不敢断言。
不过这种东西是有方法能用就好了,研究起来也没有多大意思。

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧