【发布时间】:2014-10-06 11:59:28
【问题描述】:
我有一个 Meteor 项目,它使用 appcache 包在浏览器中保留 Meteor 应用程序的缓存。现在我已经购买了 SSL 证书,并希望开始强制用户连接到该站点的 https:// 地址。所以我添加了 force-ssl 包。但是,当用户转到 http://example.com 时,Meteor 应用程序的缓存版本会加载,它会收到缓存更新通知,并尝试开始下载应用程序的新版本。因此,http:// 站点现在正尝试从 https:// 站点请求资源,但由于 CORS 问题,浏览器阻止了此操作。
我已经使用了 force-ssl 包,甚至尝试设置一些标题:
var host = url.parse(Meteor.absoluteUrl()).hostname;
res.setHeader('access-control-allow-origin', 'http://' + host);
res.setHeader('access-control-allow-credentials', 'true');
res.setHeader('access-control-allow-methods', 'POST, GET, OPTIONS');
但我仍然看到类似以下的 CORS 错误:
GET https://www.example.com/sockjs/881/y6to3ysz/xhr 405 (Method Not Allowed)
有人知道如何正确设置标题,以便更新可以从 https:// 到 http:// 站点吗?我在设置 socksjs 标头等方面陷入困境,并想也许有人已经这样做了,可能会节省我一些时间。
【问题讨论】:
标签: node.js caching ssl meteor websocket