【发布时间】:2020-06-02 20:05:27
【问题描述】:
我有一个带有 javascript 代码的 JSP,在带有 HTTPS 的服务器上运行。在这个 JavaScript 中,我触发了对 另一个(本地)网络服务器的请求,如下所示:
let url = 'http:/localhost:3111/doSomePost';
$.ajax({
type: 'POST',
url: url,
contentType: 'application/octet-stream',
processData: false,
data: uint8array
})
这需要在本地网络服务器上启用 CrossOrigin 才能工作 - 我配置了该部分并且它可以工作。
但它只适用于 Chrome。不在 Firefox 中。
Firefox 会给我这个错误:
跨域请求被阻止:同源策略不允许读取 远程资源在 http://localhost:3111/doSomePost。 (原因:CORS 请求未成功)。
我可以在 firefox devtools 的网络选项卡中看到,firefox 甚至不费心发送预检请求(OPTIONS 请求)。所以 Firefox 只是决定它不会发送该请求(我怀疑这是因为本地网络服务器协议是 HTTP)。
我现在已将本地网络服务器更改为使用自签名证书的 HTTPS,如下所述:https://www.baeldung.com/spring-boot-https-self-signed-certificate
现在,它可以在 Firefox 和 Chrome 中使用(在我手动添加无效的证书之后)。
我只是想知道为什么 chrome 没有问题,而 firefox 却有。
更新:更正了错误消息中的小错误
【问题讨论】: