gpt4 book ai didi

javascript - jQuery ajax 调用 https URL 时出现拒绝访问错误

转载 作者:太空宇宙 更新时间:2023-11-03 13:41:30 25 4
gpt4 key购买 nike

我正在尝试设置一个客户端脚本来对不同域上的 Web 服务进行 ajax 调用,使事情变得更复杂,Web 服务是 HTTPS。该服务是 MVC4 WebApi (REST)。客户端脚本也从 HTTPS 域运行。当我尝试调用电话时收到“访问被拒绝”错误。例如,我有一个运行在 https://domain_a.com/clientpage/script.js 的脚本并调用https://domain_b.com/serviceapi/method/ , ajax 错误回调报告 Access is Denied 错误。我采用了这个确切的场景并在没有 SSL 的情况下进行了测试,所以 http 到 http,然后 ajax 调用工作正常,我还设置了 $.support.cors = true,并且还在 ajax 选项中尝试了 crossDomain: true。这是否应该与 https 一起使用,我是否遗漏了什么,或者这根本不起作用?有什么建议吗?

这是我的 ajax 调用示例:

$.support.cors = true;

$.ajax({
url: requestURL,
crossDomain: true,
type: "GET",
headers: { "Authentication": "user@domain.com:" + hashcode },
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert("call succeeded");
},
error: function (response) {
alert("call failed");
}
});

jQuery 版本:1.10.2
浏览器:IE9(希望能支持多种浏览器:chrome、firefox、safari)
网络服务:MVC4 WebAPI .NET 4.5

更新:

我做了更多测试并排除了 Web 服务问题,这似乎是底层 xmlhttprequest 对象或浏览器的问题。我在测试 https 到 https 场景时运行了 fiddler(fiddler 设置为解密 https 流量,我对此进行了测试),当我尝试进行 ajax 调用但失败时,没有任何流量。这让我相信它是浏览器。以下是我测试的场景列表和结果:
http 到 http,相同域:成功
http到http,不同域:成功
https 到 https,相同域:成功
https 到 https,不同的域:失败。 <<-- 我希望这是最常见的 Web 服务使用场景之一,一些 ISV 为从不同域调用它的客户提供服务,并且他们想要使用 SSL。

最佳答案

有时在开发环境中开发时,大多数公司不会花钱购买 ssl 证书,而是使用自签名证书,这可能会导致浏览器抛出大红屏警告,您必须继续.在 Chrome 中,我知道当你使用 iframe 执行此类操作时,它会使 iframe 窗口崩溃,除非我在该 session 期间接受证书。

话虽如此,您确定 domain_b.com 具有有效的 ssl 证书吗?如果没有,您是否在浏览器 session 中接受了 SSL 证书?您可以通过从 ajax 调用中手动复制 URL 来测试它,将其粘贴到窗口中并访问它。接受证书后,它应该开始工作。

您可能会看到这样的图像:

enter image description here

如果是,请点击继续

关于javascript - jQuery ajax 调用 https URL 时出现拒绝访问错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20384558/

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