首先,我正在从“ client.com/login”的“ Angular”页面向Spring引导服务器“ server.com/auth”的页面发出请求。在服务器上进行操作后,我想重定向到客户端的“ client.com/dashboard”角度页面。请注意,客户端和服务器域是不同的。
客户端登录角度组件的.ts文件包含:
onLoginClickPost() {
console.log('redirect request clicked');
this.data.getUserInfoPost().subscribe(
data => {
console.log(data);
}
);
}
getUserInfoPost() {
return this.http.post('http://server.com/auth');
}
服务器具有@RestController,其方法映射到传入的POST请求:
@CrossOrigin(origins = "http://client.com")
@RequestMapping(value = "/auth", method = RequestMethod.POST)
public <return type> login_post() {
// HOW TO REDIRECT TO client.com/dashboard FROM HERE
}
如何从上述代码重定向到client.com/dashboard?没有任何CORS问题?
更新:
我通过添加httpServletResponse.setHeader(“ Location”,projectUrl);在Redirect to an external URL from controller action in Spring MVC中尝试了解决方案;并添加@ResponseStatus(HttpStatus.FOUND)
我在控制台中遇到以下错误:
无法加载http://client.com/dashboard:请求标头字段 Content-Type不允许通过Access-Control-Allow-Header 飞行前响应。