【问题标题】:HTTPS XMLHttpRequest failing to retrieve correct pageHTTPS XMLHttpRequest 未能检索到正确的页面
【发布时间】:2013-09-13 01:15:33
【问题描述】:

我正在尝试获取页面的内容,但该页面使用 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,但没有区别。

有人可以就这个请求给我提个醒吗?

附:如果这根本不可能,有没有办法使用其他方法成功?

【问题讨论】:

    标签: javascript authentication https xmlhttprequest


    【解决方案1】:

    您不能跨域发出 AJAX 请求,除非它返回 Access-Control-Allow-Origin 标头。出于众所周知的安全原因,从脚本内发起的跨站点 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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 2014-03-12
      • 2023-04-11
      • 1970-01-01
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多