2010-12-10 24 views
0

Salut les gens. Dans mon application MVC, j'essaie de rediriger vers une page de connexion, mais elle ne redirige pas et j'obtiens une "erreur de serveur".Redirection vers une autre page ne fonctionnant pas en javascript

Voici le javascript:

<script type="text/javascript"> 
function keepAlive() { 
window.clearTimeout(window.sessionKeepAlive); 
window.sessionKeepAlive = window.setTimeout(function() { 

    if(confirm('refresh session?')) { 
     // submit coding required 
    } else { 
     //window.location="/Employee/~/Account/LogOn" 
     //location.replace("/Employee/~/Account/LogOn"); 
     window.location.href = '<%= Url.Action("Logout", "Account") %>'; 
    } 

}, <%= (Session.Timeout - 19) * 60 * 1000 %>); 
} 
keepAlive(); 
</script> 

, je dois aussi le code si l'utilisateur appuie sur le bouton « ok » et il continue.

+1

Vous obtenez une erreur de serveur, vraiment, sans blague? Jouons à un jeu: le premier qui devine l'erreur du serveur remporte une bière gratuite. De plus, votre dernière phrase est difficile à suivre. –

+0

Peut être vous obtenez l'erreur après la redirection –

+0

il ne redirige pas vers la page –

Répondre

0

Dans mon cas, je préfère ajouter le lien du chemin complet à web.config dans

<appSettings> 
    <add key="BaseURL" value="http://localhost/" /> 
</appSettings> 

et de déclarer une variable d'application dans Global.asax dans

protected void Application_Start() 
{ 
    Application["BaseURL"] = System.Configuration.ConfigurationManager.AppSettings["BaseURL"]; 
} 

Et maintenant je peux utiliser les variables dans l'ensemble du site. Dans votre cas, vous pouvez simplement utiliser par

window.location.href = '<%=Application["BaseURL"]%>account/logout'; 
0

Assurez-vous que l'emplacement vous rediriger vers inclut le protocole à savoir

window.location.href = 'http://www.yoursite.tld/account/logout'; 

Pour le second bit, vous pouvez faire un appel ajax à une page de rythme cardiaque pour rafraîchir la session

// simplified 
try { 
    var xhr = new XMLHttpRequest(); 
} catch(e) { 
    var xhr = new ActiveXObject('Microsoft.XMLHTTP'); 
} 

xhr.open('get', 'http://heartbeat/url', true); 
xhr.send(null); 
+0

Je cours en local comment fournir le lien 'http: // www .yoursite.tld/compte/logout ' –

+0

Je pense que vous pouvez simplement modifier le nom de chemin à la place 'window.location.pathname ='/account/logout'' – meouw