具有 HTTPS 连接的 Wakanda 服务器 CORS

Wakanda Server CORS with HTTPS Connections

我有一个这样设置的请求处理程序:

httpServer.addRequestHandler("^/send-contact-message", "./rest-extensions/contact-messages.js", "sendContactMessage");

我的 CORS 设置如下:

<cors enabled="true">
    <domain name="imagesreimagined.com" methods="post"/>
</cors>

我的服务器设置了安全连接 (HTTPS) 设置为 Accept only HTTPS from remote & allow HTTP and HTTPS from localhost。如果我从带有 action="https://imagesreimagined.store/send-contact-message" 的表单发送请求,我会在浏览器中收到一条错误消息:

XMLHttpRequest 无法加载 https://imagesreimagined.store/send-contact-message. Origin http://imagesreimagined.com Access-Control-Allow-Origin 不允许。

如果我将服务器的安全连接 (HTTPS) 设置为 Accept both HTTP and HTTPS connections 并将表单操作更改为 http,它就可以工作。但是,我需要所有远程连接都是 https。

我也用443端口试过CORS,也出现了同样的错误。

<cors enabled="true">
    <domain name="imagesreimagined.com:443” methods="post"/>
</cors>

调用 Wakanda 服务器的服务器不是 SSL,如果有区别的话。

一旦我从 cors 域名中删除端口号并将 SSL 添加到托管发布到 Wakanda 服务器的网站的服务器,它就起作用了。

我想这不是答案,而是在问题中添加更多内容,希望能有所帮助。

这太棒了。我今天早上登录 SO 打算问同样的问题。我的设置略有不同。

我将我的 Wakanda 服务器设置为仅接受 SSL 连接并设置为 Accept only HTTPS from remote & allow HTTP and HTTPS from localhost。 Wakanda 服务器在端口 8443 上发布。

在同一台机器上,我在端口 80 上有一个 Apache 服务器 运行,用于发布我的 Angular 2 应用程序。

我花了几个小时试图让 CORS 工作但没有成功。我还没有在 SSL 上尝试 运行 Angular 应用程序,但听起来值得一试。

=====================

经过进一步排查,我发现了问题。

不要在 CORS 定义中包含协议。

即:

而不是

<domain name="http://app.example.com" methods="post;get;put;delete"/>

应该是:

<domain name="app.example.com" methods="post;get;put;delete"/>

确实很明显,但我很久没看到了。