jQuery getJSON - URL错误,请帮助

时间:2011-08-25 09:27:22

标签: jquery getjson

我是jQuery的初学者,我尝试使用getJSON,但是当我将它与URL一起使用时总是会出错,而当我将它与文本文件一起使用时它会起作用。 你能告诉我这个URL有什么问题吗?

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$.getJSON("http://localhost/edoc?appname=eDRITS&prgname=JSON2",function(item){
     alert("success");
    $.each(item.users, function(i,user){
        content = '<p>' + user.name + ', ' + user.fname + '</p>';
        $(content).appendTo("#list");
    });
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); });
});
</script>

代码中的URL是对返回JSON数据的程序的调用:

  

{“users”:[{“usrid”:“GABR90”,“name”:“ABRAMOVA”,“fname”:“Galina”}}}

如果我用包含JSON数据的文本文件替换URL,它可以工作:

$.getJSON("file.txt",function(item){...}

我通过URL获得的错误只是我的“.error()函数”的显示,我没有任何特定的错误消息,我不知道如何使用调试器来查看浏览器的HTTP Get (这是Firefox)。

那我该如何将它与URL一起使用呢?

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您是否使用file:///访问HTML页面,然后让该页面调用http://localhost?如果是这种情况,那么你就会达到“同源”的限制。

您的浏览器将该页面视为来自file:// url,当该页面尝试连接到http://localhost时,这在技术上是另一个域,出于安全考虑,浏览器可能(通常会)阻止那种沟通。当您指向文本文件时,它会看到来自file://的html和文件,并允许进行通信。

您应该在网络服务器中加载HTML页面,以便您可以使用http://localhost/mypage.html或类似的网址访问该网页。