gpt4 book ai didi

ajax - 如何使 XMLHttpRequest 在 Firefox 上通过 HTTPS 工作?

转载 作者:行者123 更新时间:2023-12-03 03:33:06 25 4
gpt4 key购买 nike

当我尝试通过 XMLHttpRequest 发送 HTTP GET 请求时,它适用于非安全 HTTP。

但是当通过 HTTPS 发送时,不同的浏览器给出不同的结果:

在 Firefox 3.0.2 上:- GET 请求未到达网络服务器。

在 IE 7 上:- GET 请求到达网络服务器。

这是否与 Firefox 3 对不可信证书变得更加严格有关?有办法解决这个问题吗?

我已将该 URL 添加为 Firefox 证书管理器中的异常(exception)。错误控制台不报告任何错误。我在 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

虽然该文档说在 .send(null) 之后附加该函数,但我已经打开后始终附着。

关于ajax - 如何使 XMLHttpRequest 在 Firefox 上通过 HTTPS 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/138000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com