尝试阅读远程xml Feed时,为什么会出现此错误?
XMLHttpRequest cannot load http://www.companyname.com/external.php?type=xml. Origin http://intranet is not allowed by Access-Control-Allow-Origin.
这是我用来尝试获取xml文件的脚本:
$(document).ready(function() {
get_xml_feed();
function get_xml_feed() {
$.ajax({
url: 'http://www.companyname.com/external.php?type=xml',
type: 'GET',
dataType: 'xml',
error: function(xhr, status, error) {
console.log(status);
console.log(xhr.responseText);
},
success: function(xml) {
$(xml).find('items').each(function(){
var id = $(this).attr('guid');
var title = $(this).find('title').text();
var date = $(this).find('pubDate').text();
var url = $(this).find('link').text();
$('.divContent').empty().append(title + " - " + date + " - " + url + "<br />");
});
}
});
}
});
答案 0 :(得分:4)
因为您违反了same origin policy。 AJAX请求只能发送到与托管脚本的域名属于同一域的URL。
典型的解决方法包括在您的域上设置服务器端脚本,该脚本将充当您的域和远程域之间的桥梁,然后向将委派的脚本发送AJAX请求。
另一种可能性是使用JSONP,但远程域必须支持它。