【发布时间】:2012-08-28 23:45:54
【问题描述】:
我无意中写了一个对NextBus的跨域AJAX调用(使用jQuery):
$.ajax({
url: 'http://webservices.nextbus.com/service/publicXMLFeed?command=predictions&a=sf-muni&r=1&s=6294',
dataType: 'xml',
success: function(data) {
do_stuff();
}
});
问题是,它适用于所有浏览器,尽管来自不同的域。鉴于单一来源政策,为什么这实际上有效?
页面在这里:http://sftransitfirst.org/F/,从下拉菜单中选择一个停止会触发 ajax。
正如预期的那样,对 Google Maps API Web Services 进行类似的调用会失败并使用熟悉的 Origin ... is not allowed by Access-Control-Allow-Origin(并且它不支持 jsonp)。
【问题讨论】:
-
我认为是因为 Google URL 是“https”?不确定
-
来自该 URL 的响应标头集包含
Access-Control-Allow-Origin: *。 CORS -
@Rob 把它写成答案;)
标签: jquery ajax web-services cross-domain