我正在尝试使用spring boot social进行facebook登录。为此,我从facebook属性创建URL。我有网址,当我从调试模式获取并进入浏览器时,它按照我的意愿工作(所以链接没问题),但是当我从spring控制器发送重定向时没有任何反应。在谷歌浏览器中我可以看到请求已发送,我也可以在Chrome控制台中看到这样的错误:
无法加载[url]。预检的响应无效(302状态)。
我的控制器方法:
@RequestMapping(value = "/connect/facebook", method = RequestMethod.POST)
public String send(Model model){
String url = socialMediaService.createAuthorizationURL();
return "redirect:" + url;
}
我知道重定向到此链接存在一些问题,但我不知道如何以正确的方式执行此操作。
编辑:
这完全是关于CORS“Access-Control-Allow-Origin”属性。这足以通过javascript与dataType“jsonp”发送此重定向,如下所示:
$.ajax({
url: data.url,
type: "get",
dataType: "jsonp"
});
答案 0 :(得分:1)
"redirect:" + url
方法适用于通常可以返回视图的用例。您可以将该视图的名称设置为"redirect:" + url
,然后将其返回以发出重定向,而不是正常呈现视图。由于您的控制器操作始终重定向,请尝试返回RedirectView
:
@RequestMapping(value = "/connect/facebook", method = RequestMethod.POST)
public RedirectView send(Model model){
String url = socialMediaService.createAuthorizationURL();
return new RedirectView(url);
}
此外,您需要确保使用https
与http
中正确的一个,并且您的网址已正确构建。例如,https://example.url/resource
可能与https://example.url/resource/