我是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一起使用呢?
感谢您的帮助
答案 0 :(得分:2)
您是否使用file:///访问HTML页面,然后让该页面调用http://localhost?如果是这种情况,那么你就会达到“同源”的限制。
您的浏览器将该页面视为来自file:// url,当该页面尝试连接到http://localhost时,这在技术上是另一个域,出于安全考虑,浏览器可能(通常会)阻止那种沟通。当您指向文本文件时,它会看到来自file://的html和文件,并允许进行通信。
您应该在网络服务器中加载HTML页面,以便您可以使用http://localhost/mypage.html或类似的网址访问该网页。