jQuery getJSON - URL 错误,请帮助
我是 jQuery 的初学者,我尝试使用 getJSON,但是当我将它与 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(其中是火狐)。
那么我该如何将它与 URL 一起使用呢?
感谢您的帮助
I'm a beginner in jQuery, and I tried to use the getJSON, but I always have an error when using it with an URL, whereas it worked when I used it with a text file.
Can you please tell me what is wrong with the 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>
The URL in the code is the call to a program which returns JSON data :
{"users":[ {"usrid":"GABR90","name":"ABRAMOVA ","fname":"Galina "}] }
If I replace the URL by a text file which contains the JSON data, it works :
$.getJSON("file.txt",function(item){...}
The error I get with the URL is just the display of my ".error() function", I dont have any specific error message, and I don't know how to use debugger to see the HTTP Get of the browser (which is Firefox).
So how can I use it with the URL, please ?
Thanks for your help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否使用 file:/// 访问 HTML 页面,然后让该页面调用 http://localhost ?如果是这种情况,那么您就遇到了“同源”限制。
您的浏览器将该页面视为来自 file:// url,并且当该页面尝试连接到 http://localhost 时,从技术上讲,这是另一个域,出于安全原因,浏览器可能(并且通常会)阻止该通信。当您指向文本文件时,它会看到来自 file:// 的 html 和文件,并允许通信。
您应该在 Web 服务器中加载 HTML 页面,以便可以使用 http://localhost/mypage.html 访问该页面 或类似的网址。
Are you accessing the HTML page using file:/// and then have that page call http://localhost ? If that is the case, then you are hitting the "same origin" limitation.
Your browser see the page as coming from a file:// url, and when that page tries to connect to http://localhost, that is technically another domain, and for security reasons the browser may (and usually will) block that communication. When you instead point to a text file, it see both the html and the file coming from file:// and will allow the communication.
You should load the HTML page in your web server, so that you can access the page using a http://localhost/mypage.html or similar url.