在我的角度应用程序中,我通过conditinal重新指导用户。除了firefox
浏览器之外,所有内容都可以正常工作。
firefox
浏览器将此$window.location.href
视为服务器端请求,并将我的应用trigger
视为未知来电。 chrome,ie
工作正常。
这是我的代码:
fn.redirectToLogin = function() {
var site = fn.env.auth;
var clientId = fn.env.oauth.client_id;
var redirectUri = fn.env.oauth.redirect_uri;
var authorizePath = String( "authorization.oauth2?response_type=token&client_id=" );
var state = fn.env.state;
var URL = encodeURI(site + authorizePath + clientId + '&redirect_uri=&scope=&state=' + encodeURIComponent(JSON.stringify(state)));
$window.location.href = URL;//requesting to server!! throws error
console.log( 'fn.env.state::', fn.env.state );
}
if( !$rootScope.isUserLoggedIn && fn.env.state !== undefined ) {
console.log('going to call auto login!');
fn.redirectToLogin();
}
答案 0 :(得分:0)
我相信在Angular中更改网址的方式是$location.url(URL)
。在控制器中注入$location
并使用它而不是直接设置值。 Here您可以阅读更多相关信息。