Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 播放框架:重定向到其他域_Java_Redirect_Cors_Playframework 2.0 - Fatal编程技术网

Java 播放框架:重定向到其他域

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调用是透明的。这个问题的一个可能的解决

我正在用Java使用Play 2,我的一个控制器方法返回一个
重定向

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>