【发布时间】:2012-07-01 18:21:02
【问题描述】:
我对 JSON-P 的了解(来自 JSON-P VS JSON 和 wikipedia)是 - 发明 JSON-P 是为了克服 same origin policy of browsers 并从另一个域加载 JSON 对象。 stackoverflow 上有一个post,它显示了 JSON-P 调用的工作原理。看起来,如果我从 URL 中删除 ?callback=?,JSON-P 请求就像普通的 JSON 调用一样,因此被同源策略拒绝。由this live example 证明。
现在我有另一个网址:https://graph.facebook.com/100001612121705.json
我使用以下方法从中加载数据(visit here for live example):
$(document).ready(function() {
$.getJSON("https://graph.facebook.com/100001612121705", null,
function(data) {
$.each(data, function(key, val) {
alert(key + ' is ' + val);
});
});
});
请注意,我没有在我的 URL 中使用 ?callback?,但这个请求仍然能够从另一个域获取 JSON 数据!这对我来说非常令人惊讶。谁能解释一下为什么这个请求没有被同源规则拒绝?
【问题讨论】:
-
你指的jsFiddle使用的是:"?callback=?"
标签: javascript jquery json cross-domain jsonp