当我尝试通过 XMLHttpRequest 发送 HTTP GET 请求时,它适用于非安全 HTTP。
但是当通过 HTTPS 发送时,不同的浏览器给出不同的结果:
在火狐 3.0.2 上:
- GET 请求未到达 Web 服务器。
在 IE 7 上:
- GET 请求到达 Web 服务器。
这是否与 Firefox 3 对不受信任的证书变得更加严格有关?
有没有解决的办法?
我已经在 Firefox 的证书管理器中添加了该 URL 作为例外。
错误控制台不报告任何错误。
我在 XMLHttpRequest 的 open() 和 send 周围添加了一个 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;
}
谢谢,
肯尼思
尝试在打开之后放置关闭:
// send HTTP GET request
try
{
xmlHttp.open("GET", "/[relative path to request]", true);
}
catch (e)
{
alert('Error sending HTTP GET request!');
return false;
}
// we won't be handling any HTTP response
xmlHttp.onreadystatechange=function()
{
// do nothing..
}
// Then send it.
xmlHttp.send(null);
谷歌搜索一下发现了确认:http://www.ghastlyfop.com/blog/2007/01/onreadystate-changes-in-firefox.html http://www.ghastlyfop.com/blog/2007/01/onreadystate-changes-in-firefox.html
虽然该文档说在 .send(null) 之后附加该函数,但我已经
打开后始终附着。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)