【发布时间】:2019-01-17 16:05:12
【问题描述】:
我有一个在 my-dev.abc.com 中运行的应用程序,例如“abc”域中的 URL。 (abc 不是真正的域,它是为了解释问题)。
当我尝试从上述应用程序访问应用程序 portal.abc.com 时,我在开发者控制台中收到以下错误消息,并且不会发生重定向。
Failed to load https://portal.abc.com/: Redirect from 'https://portal.abc.com/' to 'https://portal.abc.com/Account/Login?ReturnUrl=%2f' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://my-dev.abc.com' is therefore not allowed access.
为什么即使两个应用程序使用相同的域名,也会发生此 CORS 错误?如何解决这个问题?这个重定向是从 Nodejs 端做的。客户端使用 angularjs。 NodeJs重定向代码sn-p如下图,
function redirectApp(req, res) {
res.clearCookie(COOKIES.USER_NAME);
res.clearCookie(COOKIES.ROLES);
res.clearCookie(COOKIES.EMPLOYEE_ID);
res.redirect('https://portal.abc.com');
}
【问题讨论】:
-
子域不被视为同一个域,这是有充分理由的。
-
在组成问题中使用的域时,使用
example.com。
标签: javascript node.js cors same-origin-policy