2014-04-23 7 views
0

À l'heure actuelle sur mon site Web, j'ai une page de navigation qui a un formulaire de recherche. Lorsque vous affichez les résultats, il existe une option le long de chaque ligne du tableau pour ajouter la propriété de l'élément. À l'heure actuelle lorsque vous cliquez sur le bouton de la propriété, la demande ressemble à:Expressjs - demande de fin sans redirection/rendu

app.get('/addown/:id', isLoggedIn, function(req, res) { 
    req.user.owneditems.addToSet(req.params.id); 
    req.user.save(); 
    res.redirect('/browse'); 
}); 

Au lieu de rediriger vers la page principale/de navigation, je voudrais à l'utilisateur de rester sur la page actuelle afin qu'ils puissent continuer à voir ce que la recherche paramètres qu'ils ont choisis. Y a-t-il moyen si la demande est réussie je dis pour finir et ne pas laisser/changer la page du tout?

Merci.

Répondre

0

Pour cela, vous devez utiliser une communication basée sur AJAX avec le serveur. Dans votre exemple, je suppose que le code provient de l'appel côté serveur de la page Web, donc vous avez déjà redirigé le navigateur vers/addown /: id, vous devez donc envoyer une réponse (page de contenu) ou une redirection.

Pour accomplir ce que vous voulez, vous devez modifier l'implémentation de la page Web. Vous ne partez pas ou ne naviguez pas à partir de la page, lorsque vous cliquez sur chaque ligne vous faites un appel AJAX sur le même itinéraire et retournez simplement 200 OK si vous réussissez. De cette façon, vous "glissez" dans le concept d'application d'une seule page. Regardez dans angular.js ou knockout.js pour vous aider à moins que vous ne vouliez le coder vous-même dans la table et mettre un appel de fonction sur l'événement click sur chaque ligne.