我使用Play Framework和Angularjs作为我的应用程序。我的要求是重定向播放框架页面的基础上选择的一些参数的UI。
这是我的密码
在第一页打开引导模式对话框和提交动作调用角post方法,
$scope.loginToExt = function() {
var data = $scope.env;
$http.post('/login', {env: data})
.success(function(data){
//$scope.env = data
})
.error(function(data){
console.log(data)
});
};
一旦我点击我的模式提交,它将调用‘/登录’,并且基于我的路径映射将调用下面的操作方法,
def login = Action(parse.json) { implicit request =>
val env = (request.body \ "env").as[String]
env match {
case _ => {
Redirect("https://google.com")
.withHeaders(ACCESS_CONTROL_ALLOW_ORIGIN -> "*")
}
}
路由文件如下,
POST /login controllers.Application.login
我不知道是什么问题,但我得到的错误如下,无法重定向我的网页。
XMLHttpRequest无法加载https://google.com/。请求的资源上没有“访问-控制-允许-原产地”标题。因此,“http://localhost:9000”源是不允许访问的。
发布于 2015-09-27 20:18:35
我认为您遇到的问题是因为您试图在ajax ($http.post)调用中重定向,请参阅下面的文章:
服务器端代码无法从ajax响应重定向浏览器。
Using $http.post and res.redirect without resolving the promise
另见:Handle an express redirect from Angular POST
与其尝试从游戏中重定向,不如考虑用重定向的url返回一个响应,然后在您成功的回传中,从那里重定向:
$window.location.href = "https://google.com";
(记得注射$window)
发布于 2016-07-01 10:03:05
通过查看"access-control-allow-origin",您必须在HeaderNames.ACCESS_CONTROL_ALLOW_HEADERS中添加Global.scala文件中的https://gist.github.com/mitchwongho/78cf2ae0276847c9d332。
https://stackoverflow.com/questions/32808368
复制相似问题