我有一个像这样设置的请求处理程序:
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。 Access-Control-Allow-Origin不允许原点http://imagesreimagined.com。
如果我将服务器的安全连接(HTTPS)设置为Accept both HTTP and HTTPS connections
并将表单操作更改为http,则可以正常工作。但是,我需要所有远程连接都是https。
我还尝试使用443端口的CORS并得到了同样的错误。
<cors enabled="true">
<domain name="imagesreimagined.com:443” methods="post"/>
</cors>
调用Wakanda服务器的服务器不是SSL,如果这有所不同。
答案 0 :(得分:1)
一旦我从cors域名中删除了端口号并将SSL添加到托管网站发布到Wakanda Server的服务器上,它就可以了。
答案 1 :(得分:0)
我想这不是一个答案,而是在问题上增加更多内容,希望它有所帮助。
这太棒了。我今天早上登录了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"/>
非常明显,但我很长时间没有看到它。