我正在尝试使用 Spring Boot Social 进行 Facebook 登录。为此,我从 facebook 属性创建 url。我有 url,当我从 Debug模式获取它并放入浏览器时,它可以按我希望的方式工作(因此链接正常),但是当我从 spring Controller 发送重定向时,什么也没有发生。在 google chrome 中,我可以看到请求已发送,并且我还可以在 chrome 控制台中看到此类错误:
无法加载 [url]。预检响应无效(302 状态)。
我的 Controller 方法:
@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 使用数据类型“jsonp”发送此重定向就足够了,如下所示:
$.ajax({
url: data.url,
type: "get",
dataType: "jsonp"
});
最佳答案
“redirect:”+ url
方法适用于通常可能返回 View 的用例。您可以将该 View 的名称设置为 "redirect:"+ url
,然后返回它以发出重定向,而不是正常渲染 View 。由于您的 Controller 操作始终重定向,请尝试返回 RedirectView
:
@RequestMapping(value = "/connect/facebook", method = RequestMethod.POST)
public RedirectView send(Model model){
String url = socialMediaService.createAuthorizationURL();
return new RedirectView(url);
}
此外,您需要确保使用正确的 https
与 http
之一,并且您的 URL 构造正确。例如,https://example.url/resource
可能与 https://example.url/resource/
关于java - Spring Boot 社交媒体 - facebook 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48871960/