要解决AJAX JSON跨源读取被阻止的问题,可以使用以下方法之一:
然后,将AJAX请求指向代理页面:
$.ajax({
url: 'proxy.php?url=http://example.com/data.json',
dataType: 'json',
success: function(data) {
// 处理返回的数据
}
});
function handleData(data) {
// 处理返回的数据
}
var script = document.createElement('script');
script.src = 'http://example.com/data.json?callback=handleData';
document.body.appendChild(script);
请注意,服务器端需要将返回的数据包装在回调函数中,以便客户端能够处理它。
在服务器端的响应中添加以下HTTP头:
Access-Control-Allow-Origin: *
这将允许任何域名的请求访问该资源。您还可以将特定的域名添加到头信息中,以限制访问。
然后,可以直接使用AJAX请求从其他域名获取数据,而无需任何代理或JSONP。
$.ajax({
url: 'http://example.com/data.json',
dataType: 'json',
success: function(data) {
// 处理返回的数据
}
});
请注意,CORS仅适用于现代浏览器,旧版本的浏览器可能不支持。
这些方法可以帮助您绕过AJAX JSON跨源读取被阻止的问题,具体方法取决于您的需求和服务器配置。