【发布时间】:2017-08-04 05:36:03
【问题描述】:
我正在使用 ajax 向我的服务器发出 PUT http 请求。我在/contact/:id' 处理请求,然后重定向到'/contacts'。
但是,重定向后,视图contacts/index 不呈现,但是当我简单地转到浏览器并访问http://localhost:3000/contacts 时,它可以正常工作。当我在/contacts 路由中执行console.log(params) 时,它们是正确的,正如我预期的那样。
提前致谢!
app.js:
var path = require('path');
var express = require('express');
var load = require('consign');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var session = require('express-session');
var app = express();
app.set('view engine', 'ejs');
app.use(cookieParser());
app.use(session({secret: 'ntalk',
resave: false,
saveUninitialized: true}));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use('/public', express.static('public'));
app.listen(3000, function(){
console.log("Running");
});
// Routes
app.post('/enter', function(req,res){
var name = req.body.user.name;
var email = req.body.user.email;
if(name && email){
var user = req.body.user;
usuario['contacts'] = [];
req.session.user = user;
res.redirect('/contacts');
}
else{
res.redirect('/');
}
});
app.get('/contacts', function(req,res){
var user = req.session.user;
var contacts = user.contacts;
var params = {
user: user,
contacts: contacts
};
console.log(params);
res.render('contacts/index', params);
});
app.put('/contact/:id', function(req,res){
var user = req.session.user;
var contacts = req.body.contact;
var id = req.params.id;
user.contacts[id] = contact;
res.redirect(303, '/contacts');
});
ajax:
$(document).ready(function() {
$("#editForm").submit(function(e){
e.preventDefault();
var data = {
contact: {
name: $("#name").val(),
email: $("#email").val()
}
};
$.ajax({
type: 'PUT',
url: '/contact/' + $("input:first").val(),
data: data,
success: function(){
console.log("Edited");
}
});
});
});
【问题讨论】:
标签: javascript node.js ajax express