我正在尝试获取网页内容,但此页面使用https进行保护。我尝试将XMLHttpRequest与http站点一起使用并成功,但此页面确实返回了您必须登录的页面的重定向。
以下是我尝试使用的代码:
var xhr = new XMLHttpRequest();
xhr.onreadystatechange=function() {
if (xhr.readyState==4 && xhr.status==200) {
document.getElementById("container").innerHTML = xhr.responseXML.body.innerHTML;
};
};
xhr.open('POST', 'https://eu.battle.net/wow/en/vault/character/auction/alliance/', true);
xhr.withCredentials = true;
xhr.send();
document.getElementById("container").innerHTML = "loaded";
我尝试设置请求标头,包括Cookie和身份验证,并将方法更改为GET和POST但没有区别。
有人可以根据这个要求提醒我吗?
P.S。如果根本不可能,有没有办法成功使用不同的方法?
答案 0 :(得分:2)
除非它返回Access-Control-Allow-Origin标头,否则不能跨域进行AJAX请求。出于众所周知的安全原因,从脚本内发起的跨站点HTTP请求受到众所周知的限制。例如,使用XMLHttpRequest对象进行的HTTP请求受同源策略的约束。特别是,这意味着使用XMLHttpRequest的Web应用程序只能向其加载的域发出HTTP请求,而不能向其他域发出HTTP请求。
更多信息:https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS
你可以使用PHP代理绕过这个: http://blog.edwards-research.com/2012/10/cross-domain-ajax-a-simple-workaround/