发出跨域的 Ajax GET 请求
使用现代浏览器从不同域中的服务器异步加载数据
JavaScript在不同域中的服务器异步检索数据很简单,并且与同源Ajax GET请求非常相似。 下面的辅助方法可在现代浏览器和Internet Explorer 9+中工作:
function getCORS(url, success) {
var xhr = new XMLHttpRequest();
if (!('withCredentials' in xhr)) xhr = new XDomainRequest(); // fix IE8/9
xhr.open('GET', url);
xhr.onload = success;
xhr.send();
return xhr;
}
// example request
getCORS('http://foo.bar/?p1=1&p2=Hello+World', function(request){
var response = request.currentTarget.response || request.target.responseText;
console.log(response);
});
在CORS中使用onload回调来代替onreadystatechange接收返回的数据。 回调函数只有一个参数(请求对象)。 根据浏览器的不同,实际的响应位于currentTarget.response或target.responseText中。
参考:
http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS