抓住'阻塞加载混合活动内容'CORS错误

在firefox中,当javascript尝试从https托管的页面向http服务器执行CORS请求时,它将引发错误:

Blocked loading mixed active content 

我想知道这些错误,但我无法弄清楚。 EgI使用jQuery尝试了这样的事情:

try {
  $.get("http://public.opencpu.org/ocpu/library/").fail(function(xhr, err){
    console.log("Server error:" + xhr.responseText);
  });
} catch(e){
  console.log(e.message);;
}

但是,buthr xhr.responseTexte.message是空字符串(可能是因为$.ajax异步发生)。 如何捕获实际的错误消息:阻止加载混合活动内容...


你无法捕捉到确切的消息。 它只会记录到控制台,但对用户不可用。

当使用纯XHR时, .open()调用会抛出一个具有.result === 0x805e0006的异常。 另外, ex.toString()将包含nsresult: "0x805e0006 (<unknown>)"

jQuery将ex.toString()放入.statusTextjqXHR ,因此您可以对因混合内容而被阻止的请求进行以下检查:

xhr.statusText.indexOf('nsresult: "0x805e0006 (<unknown>)"') > -1

对于好奇者: 0x805e0006应该是NS_ERROR_CONTENT_BLOCKED (C ++宏值)。


通过使用协议相对URL,您应该能够首先防止错误:

$.get("//public.opencpu.org/ocpu/library/")

根据您的页面上下文使用http或https。 public.opencpu.org支持,所以没有问题。

链接地址: http://www.djcxy.com/p/17919.html

上一篇: Catching 'Blocked loading mixed active content' CORS error

下一篇: Configure PhpStorm to use .htaccess