gpt4 book ai didi

javascript - CORS - 从 HTTPS 到 HTTP 的跨域 POST

转载 作者:搜寻专家 更新时间:2023-11-01 04:41:37 27 4
gpt4 key购买 nike

我正在尝试使用从 HTTPS 加载到使用 HTTP url 的不同域的页面中的 XmlHTTPRequest POST。 HTTP 服务器是本地(在家中)服务器,因此它不能是 HTTPS。 (这是一个原型(prototype)/演示——家庭 HTTP 服务器可能位于机顶盒中)。我的服务器返回:

'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods' : 'GET, POST, PUT, DELETE, OPTIONS'

当我发帖时,浏览器似乎取消了请求。我在控制台中看到这个警告:

位于 'https://xxx.html' 的页面已通过 HTTPS 加载,但显示来自 'http://localhost:10293/yyy' 的不安全内容: 此内容也应通过 HTTPS 加载。

有没有办法让它工作?

非常有趣的是,我可以向 HTTP 服务器发送一个 DELETE,而且它有效,只是 POST 不行! (服务器处理 'OPTION' 请求,并返回上面的 'Access' header 。DELETE 也会导致警告吐出,但请求已发送,不像 POST,请求被浏览器取消。

服务器是一个基本的 node.js 服务器。

最佳答案

我能够通过在我的 HTTP 服务器中处理 OPTIONS 请求来完成这项工作:

    response.writeHead(200, {
'Content-Type': 'text/html',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods' : 'GET, POST, PUT, DELETE, OPTIONS'
});
response.end();

只有 POST 失败的问题是一个转移注意力的问题——我现在忘记了具体情况,我上面的评论说了一些关于 POST 之后的 setTimeout 的内容。不确定,但它现在正在运行。

关于javascript - CORS - 从 HTTPS 到 HTTP 的跨域 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22618642/

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