Node.js
Routage des requêtes ajax avec Express.JS
Recherche…
Une implémentation simple d'AJAX
Vous devriez avoir le modèle de générateur express de base
Dans app.js, ajoutez (vous pouvez l'ajouter n'importe où après var app = express.app()
):
app.post(function(req, res, next){
next();
});
Maintenant, dans votre fichier index.js (ou sa correspondance respective), ajoutez:
router.get('/ajax', function(req, res){
res.render('ajax', {title: 'An Ajax Example', quote: "AJAX is great!"});
});
router.post('/ajax', function(req, res){
res.render('ajax', {title: 'An Ajax Example', quote: req.body.quote});
});
Créez un ajax.jade
/ ajax.pug
ou ajax.ejs
dans le répertoire /views
, ajoutez:
Pour Jade / PugJS:
extends layout
script(src="http://code.jquery.com/jquery-3.1.0.min.js")
script(src="/magic.js")
h1 Quote: !{quote}
form(method="post" id="changeQuote")
input(type='text', placeholder='Set quote of the day', name='quote')
input(type="submit", value="Save")
Pour EJS:
<script src="http://code.jquery.com/jquery-3.1.0.min.js"></script>
<script src="/magic.js"></script>
<h1>Quote: <%=quote%> </h1>
<form method="post" id="changeQuote">
<input type="text" placeholder="Set quote of the day" name="quote"/>
<input type="submit" value="Save">
</form>
Maintenant, créez un fichier dans /public
appelé magic.js
$(document).ready(function(){
$("form#changeQuote").on('submit', function(e){
e.preventDefault();
var data = $('input[name=quote]').val();
$.ajax({
type: 'post',
url: '/ajax',
data: data,
dataType: 'text'
})
.done(function(data){
$('h1').html(data.quote);
});
});
});
Et voila! Lorsque vous cliquez sur Enregistrer, le devis change!
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow