Java 播放框架:重定向到其他域
我正在用Java使用Play 2,我的一个控制器方法返回一个Java 播放框架:重定向到其他域,java,redirect,cors,playframework-2.0,Java,Redirect,Cors,Playframework 2.0,我正在用Java使用Play 2,我的一个控制器方法返回一个重定向: return redirect(<some other domain>); 这是行不通的;Firefox告诉我启用CORS。所以我试着按照答案的建议启用CORS。但我还是犯了同样的错误。然而,这个答案似乎是针对JSON响应的。我是否需要为重定向执行任何不同的操作 我本以为将访问控制Allow Origin设置为*就可以了,但这似乎不起作用。Http 3xx重定向响应对AJAX调用是透明的。这个问题的一个可能的解决
重定向
:
return redirect(<some other domain>);
这是行不通的;Firefox告诉我启用CORS。所以我试着按照答案的建议启用CORS。但我还是犯了同样的错误。然而,这个答案似乎是针对JSON响应的。我是否需要为重定向执行任何不同的操作
我本以为将
访问控制Allow Origin
设置为*
就可以了,但这似乎不起作用。Http 3xx重定向响应对AJAX调用是透明的。这个问题的一个可能的解决方案是返回303以外的内容,这可以通过AJAX解决。例如,您可以假设来自代码为280的应用程序的所有响应都用于AJAX重定向。那么您的控制器将如下所示:
public class Application extends Controller {
public static Result signin() {
// ...
return status(280, "https://api.twitter.com/oauth/authenticate?oauth_token=" + requestToken.getToken());
}
}
在客户端,您可以检查结果状态代码并对代码280作出反应。下面是一个页面重定向的简单示例,但您可以使用该响应执行任何您喜欢的操作
<script>
$(function() {
$.ajax({'url': '/signin', statusCode: {
280: function(response) {
window.location = response;
}
}});
});
</script>
$(函数(){
$.ajax({'url':'/sign',状态代码:{
280:功能(响应){
window.location=响应;
}
}});
});
请您详细介绍一下执行此重定向的方式,好吗?CORS与AJAX连接。简单重定向应该可以与普通http调用一起正常工作。控制器方法正在发出此调用:return redirect(“https://api.twitter.com/oauth/authenticate?oauth_token=“+requestToken.getToken())代码>我问的是如何调用返回重定向的操作?我编辑了这篇文章。
<script>
$(function() {
$.ajax({'url': '/signin', statusCode: {
280: function(response) {
window.location = response;
}
}});
});
</script>