为什么这个.json文件没有被jquery解析?
问题描述:
我已上载该数据Rackspace的云文件:为什么这个.json文件没有被jquery解析?
{"foo": "bar"}
它生活在这个网址:http://c192531.r31.cf1.rackcdn.com/test.json
它充当内容类型的应用程序/ JSON和当使用浏览器访问你得到一个Promt下载。该文件具有预期的内容。
当我试图在这个片段中
<script>
$(document).ready(function($) {
url = 'http://c192531.r31.cf1.rackcdn.com/test.json';
$.getJSON(url, function (data) {
alert(data);
});
});
</script>
它提醒null
使用jQuery 1.4.2访问它。
我做错了什么?
答
包含此脚本的页面是否托管在同一个域中(http://c192531.r31.cf1.rackcdn.com)?如果没有,您可能会点击same origin policy restriction,这会阻止您发送跨域AJAX请求。
可能的解决方法是使用JSONP,但是您需要使远程URL返回JSONP字符串,或者如果您不能修改它,请设置可充当域和远程域之间桥梁的服务器端脚本,以及然后将AJAX请求发送到该桥接脚本。
答
您正遇到Same Origin Policy。您可以直接下载JSON,因为您不想从另一个网站的上下文中尝试这样做(即,您只是直接访问该URL)。但是从ajax请求中,您有http://site.a
尝试从http://site.b
加载数据。