我第一次使用Node和Express创建一个在数据库上进行CRUD操作的简单网站。当我发出我的put请求时,我无法将页面重定向到'/ index'并且我已经运行调试器for express并且没有看到任何异常,页面根本不会改变。有什么想法吗?这是server.js中的代码
app.set('view engine', 'ejs')
app.all('/', function(req,res){
var cursor = db.collection('jobs').find().toArray(function(err, results) {
res.render('index.ejs', {jobs: results})
})
})
app.get('/index',function (req, res) {
res.sendFile(__dirname + '/index.html');
})
app.get('/view',function (req, res) {
var cursor = db.collection('jobs').find().toArray(function(err, results) {
res.render('index.ejs', {jobs: results})
})
})
app.post('/jobs', function(req, res) {
db.collection('jobs').save(req.body,function(err, result){
if (err) return console.log(err)
console.log('saved to database');
res.redirect('/view');
})
})
app.put('/view', function(req, res) {
res.redirect(303, '/index');
})
答案 0 :(得分:0)
HTTP重定向只是告诉客户端从其他地方获取它要求的数据。它并没有告诉它以不同的方式对待它。
如果您发出Ajax请求并获得重定向响应,则浏览器将静默跟踪该重定向,并将新URL的内容返回给您的JavaScript。
浏览器不会看到重定向并决定在视口中加载新页面,而不是将数据呈现给您的JavaScript。
如果您想在发出PUT请求后加载新页面,则需要等待响应进入然后(例如)为window.location.href
分配新值。