0

我编写了一个 javascript 代码来从一个 url 获取一个 Json 对象。我的代码是这样的:

<script>

$(document).ready(function(){

  $("button").click(function(){
    $.getJSON('url_address', {}, function(data) {
        // do something
    });
  });
  });

});

</script>

我正在使用 Google Chrome 浏览器。如果我只需在浏览器中输入 url,我就可以正确获取 json 数据。

但是当我调试这段代码时,我收到一条错误消息:

XMLHttpRequest 无法加载“url_address”。Access-Control-Allow-Origin 不允许 Origin null。

我不知道它有什么问题。

4

1 回答 1

0

这是因为同源策略阻止浏览器向位于不同域中的资源发出 ajax 请求。

有两种可能的解决方法,取决于资源服务器的支持

JSONP:资源不是发出 ajax 请求,而是像 javascript 函数调用一样加载。

$.getJSON('url_address?callback=?', {}, function(data) {
    // do something
});

CORS

于 2013-08-23T02:24:35.517 回答