javascript - Jquery 从远程主机获取 json

标签 javascript jquery cross-domain

您好,我正在尝试使用这段代码从远程主机读取 json。

<!DOCTYPE html>
<html>
<head>
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$.getJSON("http://xx.xxx.xxx.xx/rest/user.json",function(result){
  $.each(result, function(i, field){
    $("div").append(field + " ");
      });
    });
  });
});
</script>
</head>
<body>

<button>Get JSON data</button>
<div></div>

</body>
</html>

问题是当我在浏览器中输入 url 时,我从中获取了 json。但是使用上面的jquery方法获取json失败。

有人可以在这方面提供帮助。谢谢

最佳答案

我将假设托管 JSON 的站点未提供此页面。

您正在尝试发出跨域请求,大多数(?)浏览器都允许这样做。您遇到了所谓的浏览器同源策略。它是浏览器内置的一种安全措施。它不允许您向与请求页面不在同一来源的位置发出 XHR 请求。

有几种解决方法:

  1. 使用服务器端代理发出请求
  2. 使用JSONP提出请求(参见 GBD 的回答)
  3. 查看 CORS

关于javascript - Jquery 从远程主机获取 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12990520/

相关文章:

javascript - 在 :visited , 中只有一项更改有效

asp.net - 什么是 crossdomain.xml 文件?

javascript - Selenium htmlUnit 动态内容不起作用

php - jQuery 自动完成特殊字符(挪威语)问题

javascript - 我可以使用 args1>args2 吗? args1 : args2 statement in javascript?

jquery - 占位符 jQuery 中的 HTML5

javascript - IFrame Popup "Window",显示和隐藏,跨域

javascript - Safari 中的 Google Adsense、CORS 和 Rails 转储了数千个控制台错误

JavaScript : pass function as variable and execute it

javascript - PubNub - 曾经有效但不再有效的代码