【发布时间】:2017-11-22 08:03:30
【问题描述】:
我正在开发一个应用程序,它使用 Sailsjs 作为后端,在不同的服务器上使用 Angular 4 作为后端。因此,我必须启用 CORS,并且来自 Angular 应用程序的每个 HTTP 请求都由 OPTIONS 请求前置,我相信这是由浏览器添加的。问题是 Sailsjs 为这个 OPTIONS 请求创建了 cookie,但是这个 cookie 没有保存在浏览器中。
因此,我的 redis 服务器被 OPTIONS 请求生成的大量 cookie 淹没了。我想要实现的是禁用 OPTIONS 请求 cookie。我已经通过以下路由配置进行了尝试:
'OPTIONS /*': {
cors: {
credentials: false
}
}
我的全局 CORS 配置如下所示:
allRoutes: true,
origin: 'http://127.0.0.1:4200',
credentials: true,
methods: 'GET,POST, PUT, DELETE, OPTIONS, HEAD'
headers: 'content-type, authorization, timeout'
securityLevel: 1
但这不起作用,服务器总是使用为 OPTIONS 请求设置的 cookie 进行响应。关于如何正确设置的任何想法?
更新 研究 Sailsjs 的文档,我想出了另一个解决方案,它也不起作用。 我已将此代码添加到会话设置中:
routesDisabled: ['OPTIONS /*']
但这已经禁用了所有请求的会话,忽略了我特别想要的只有 OPTIONS 请求。
【问题讨论】:
标签: angular cookies cors sails.js