gpt4 book ai didi

java - Play Framework : redirect to a different domain

转载 作者:行者123 更新时间:2023-12-01 12:33:40 25 4
gpt4 key购买 nike

我正在使用 Play 2 和 Java,并且我的 Controller 方法之一返回重定向:

return redirect(<some other domain>);

客户端调用通过 $http 从角度 Controller 发生:

$http.get("/signin").
...

这不起作用; Firefox 告诉我启用 CORS。因此,我尝试按照此 StackOverflow question 的答案的建议启用 CORS。 。但我仍然遇到同样的错误。然而这个答案似乎是针对 JSON 响应的。我需要对重定向做任何不同的事情吗?

我本以为将 Access-Control-Allow-Origin 设置为 * 就可以解决问题,但这似乎不起作用。

最佳答案

Http 3xx 重定向响应对于 AJAX 调用是透明的。此问题的一种可能的解决方案是返回 303 之外的其他内容,这可以通过 AJAX 解决。例如,您可以假设来自应用程序的所有代码为 280 的响应都用于 AJAX 重定向。那么你的 Controller 将如下所示:

public class Application extends Controller {

public static Result signin() {
// ...
return status(280, "https://api.twitter.com/oauth/authenticate?oauth_token=" + requestToken.getToken());
}

}

在客户端,您可以检查结果状态代码并对代码 280 使用react。下面是一个带有页面重定向的简单示例,但您可以对该响应执行任何您喜欢的操作。

<script>
$(function() {
$.ajax({'url': '/signin', statusCode: {
280: function(response) {
window.location = response;
}
}});
});
</script>

关于java - Play Framework : redirect to a different domain,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25744088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com