当我尝试通过 XMLHttpRequest 发送 HTTP GET 请求时,它适用于非安全 HTTP。
但是当通过 HTTPS 发送时,不同的浏览器会给出不同的结果:
在 Firefox 3.0.2 上: - GET 请求未到达 Web 服务器。
在 IE 7 上: - GET 请求到达 Web 服务器。
这是否与 Firefox 3 对不受信任的证书变得更加严格有关?有没有解决的办法?
我已经在 Firefox 的证书管理器中添加了 URL 作为例外。错误控制台不报告任何错误。我在 XMLHttpRequest 的 open() 和发送周围添加了一个 try-catch。不会抛出异常。
同时使用绝对和相对 URL 路径不起作用。
这是代码片段:
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
return false;
}
}
}
// we won't be handling any HTTP response
xmlHttp.onreadystatechange=function()
{
// do nothing..
}
// send HTTP GET request
try
{
xmlHttp.open("GET", "/[relative path to request]", true);
xmlHttp.send(null);
}
catch (e)
{
alert('Error sending HTTP GET request!');
return false;
}
谢谢,肯尼斯