我对 JSON-P 的了解(来自JSON-P VS JSON和维基百科)是 - 发明 JSON-P 是为了克服浏览器的同源策略并从另一个域加载 JSON 对象。stackoverflow 上有一篇文章展示了 JSON-P 调用的工作原理。看起来,如果我?callback=?
从 URL 中删除,JSON-P 请求就像普通的 JSON 调用一样,因此被同源策略拒绝。这个活生生的例子证明了这一点。
现在我有另一个 URL:https://graph.facebook.com/100001612121705.json
我使用以下方法从中加载数据(访问此处查看实时示例):
$(document).ready(function() {
$.getJSON("https://graph.facebook.com/100001612121705", null,
function(data) {
$.each(data, function(key, val) {
alert(key + ' is ' + val);
});
});
});
请注意,我没有将?callback?
与我的 URL 一起使用,并且此请求仍然能够从另一个域获取 JSON 数据!这对我来说非常令人惊讶。谁能解释一下为什么这个请求没有被同源规则拒绝?