从在线阅读中我得知,我试图做的事情可能是不可能的,但是,我想我会试试运气,看看这里是否有人可以帮助我处理我的问题。
我正在尝试从opendata网站获取我所在地区的列车信息的XML数据。 https://www.opendatani.gov.uk/dataset/real-time-rail-stations-arrivals-and-departures
网站关于opendata的事实让我相信我可以轻松地提取这些数据。我错了!
从上面的链接中,您可以看到一个链接,以查看示例XML响应。该文件的名称是Station索引。
https://apis.opendatani.gov.uk/translink/3042A7.xml
现在,如果我将上面的链接发布到邮递员中,我会得到所需的数据,但如果我执行了AJAX请求,则会收到以下错误。
Failed to load https://apis.opendatani.gov.uk/translink/3042A7.xml: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
以下是我的ajax请求,我知道这可能是一个很长的镜头,但如果我遗失任何帮助,将非常感谢。
$.ajax({
type: "GET",
url: "https://apis.opendatani.gov.uk/translink/3042A7.xml",
ContentType: 'application/xml',
success: function(result) {
console.log(result);
},
error: function(xhr, textStatus, errorThrown) {
console.log(xhr);
console.log(textStatus);
console.log(errorThrown);
}
});
答案 0 :(得分:0)
CORS代表跨源资源共享,必须在服务器端支持。
您可以从服务器获取此文档及其数据并执行您想要的操作(甚至在您的域中使用ajax调用访问该文档),但是您无法通过ajax调用从其他域访问该文档或iframe,如果他们不允许这样做。 好吧,有一些网络浏览器扩展可以启用和禁用它,但你不能要求每个人安装和使用它们。