具有 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"/>
确实很明显,但我很久没看到了。
我有一个这样设置的请求处理程序:
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"/>
确实很明显,但我很久没看到了。