【问题标题】:xmlhttprequest status 0 statusText "unknown" - security certificate?xmlhttprequest status 0 statusText "unknown" - 安全证书?
【发布时间】:2018-10-14 20:32:45
【问题描述】:

这是在 IE 的 javascript 中完成的:所以我继续使用 xmlhttprequest 工作,我想我终于明白了如何在所有情况下都很好地使用它。好吧,当返回的状态为 0 且 statusText 为“未知”时,我什至不知道该怎么想。所以我创建了一个 XMLHttpRequest 并将其推送到一个数组中,这个特定的数组位于 requests[0] 中。这是相关代码。

this.requests[0].open("GET", "https://" + this.address, true);
//This is just something I put in that I found that would supposedly 
//Fix the problem.
this.requests[0].setRequestHeader("Content-type", "text/xml");
this.requests[0].send();
function onReadyStateChange1() {
    if (4 == me.requests[0].readyState) {
        if (me.requests[0].status == 200) {
            //Once I get this working I'll have a statement to use          
            //XML for response if possible.
            var response = me.requests[0].responseText;
            return response;            
       }
    }
}

我似乎无法弄清楚为什么。 XMLHttpRequest 能否以某种方式无法处理安全的 http 连接?或者,我认为更有可能是因为网站的安全证书存在问题,XMLHttpRequest 拒绝获取它?还是别的什么?

【问题讨论】:

  • 好吧,我去发现 http 和 https 域不能在同一个域中......意思是现在我想我需要规避这个事实?

标签: javascript security networking xmlhttprequest


【解决方案1】:

有问题的代码可能引发了安全异常。

是的,协议是 Origin 的一部分;您不能在 IE 中使用 XMLHTTPRequest 进行跨域请求。请改用 XDomainRequest 对象。

【讨论】:

  • 您好,感谢您的回答。我实际上是在寻找东西时找到了 XDomainRequest 对象,我尝试了它,但我似乎无法用它打开任何东西。我尝试打开随机页面、Microsoft 在 MSDN 上提供的示例中的页面,以及我将要打开的实际地址。但是,我觉得部分问题可能是缺少必要的标头服务器端?也许这些例子应该有效。无论哪种方式,我都没有在服务器端工作,所以我无法添加我实际需要的标题。知道为什么它可能不起作用吗?
  • 澄清一下,xdr 没有任何实际作用。我在 if (window.xDomainRequest) 语句中创建了它,它确实进入了该语句。但是,我不能做任何事情(即使只是将内容类型设置为 text/plain)而不会破坏它。
  • 我不确定您的意思是“设置内容类型”——XDomainRequest 没有公开该功能。可以在此处查看 XDR 的工作示例:fiddler2.com/test/xdr.asp
猜你喜欢
  • 2016-03-09
  • 2013-10-24
  • 2018-12-24
  • 2014-12-17
  • 2011-10-24
  • 1970-01-01
  • 2018-12-29
  • 1970-01-01
  • 2015-08-05
相关资源
最近更新 更多