Khi mã này chạm vào đường chuyển hướng, nó sẽ ném 'Không thể đặt tiêu đề sau khi chúng được gửi lỗi' và không chuyển hướng. Tôi phạm tội không hiểu đầy đủ các tiêu đề và cách diễn đạt hoạt động với chúng. This link about this error gây nhầm lẫn cho tôi một chút, có lẽ vì tôi không có đủ hiểu biết cơ bản về những gì đang xảy ra. Ngoài ra, tôi biết đây là một cách tiếp cận ngây thơ để xác thực, nhưng tôi chỉ cố gắng để có được những điều cơ bản để làm việc.Lỗi chuyển hướng nhanh: không thể đặt tiêu đề sau khi được gửi
app.post('/api/login', function(req, res) {
if (req.body.password === auth.password) {
auth.date = new Date()
res.redirect('/admin')
} else {
console.log("wrong pw")
}
})
CẬP NHẬT: cảm ơn @Brendan Ashworth Tôi đã bỏ lỡ một điều hiển nhiên khác, điều mà tôi đã thêm bây giờ và không còn gặp lỗi nữa.
Tuy nhiên dòng này không làm thay đổi nội dung của trang web của tôi
res.sendfile('./public/admin/views/tunes.html')
Nó đã làm việc trước khi tôi được bao bọc nó bằng séc auth
var auth = require('../config/auth')
module.exports = function(app) {
/*
* CONTENT API
*/
//...
/*
* Admin Routes
*/
app.get('/admin/login', function(req, res) {
res.sendfile('./public/admin/views/login.html')
})
app.post('/api/login', function(req, res) {
if (req.body.password === auth.password) {
auth.date = new Date()
res.redirect('/admin')
} else {
res.json({message: 'Wrong password!'})
}
})
app.get('/admin', function(req, res) {
if (auth.date) {
res.sendfile('./public/admin/views/tunes.html')
console.log("test") //
} else { //added else
res.redirect('/admin/login')
}
})
app.get('/admin/:url', function(req, res) {
if (auth.date) {
res.sendfile('./public/admin/views/' + req.params.url + '.html')
} else { //added else
res.redirect('/admin/login')
}
})
// frontend routes
// route to handle all angular requests
app.get('*', function(req, res) {
res.sendfile('./public/views/index.html')
})
}
CUỐI CÙNG CẬP NHẬT !! Điều cuối cùng tôi cần là xử lý phía máy khách chuyển hướng sau khi gửi tệp. Xác thực đơn giản hoạt động hoàn hảo ngay bây giờ!
$http.post('/api/login', $scope.auth).success(function() {
window.location.href = '/admin'
})
Bạn có thể hiển thị phần còn lại của tuyến đường và phần mềm trung gian không? Ngoài ra, cần lưu ý rằng nếu res.body.password không bằng auth.password, bạn sẽ không bao giờ gửi phản hồi, trong mã bạn đã đăng. – Paul
Bạn có một tuyến đường hoặc phần mềm trung gian khác trước khi gọi phương thức này là 'res.writeHead()', 'res.send()', 'res.write()', hay cái gì đó tương tự? – mscdex
@Paul Cảm ơn, đã thay đổi console.log thành res.json, cũng bao gồm nhiều mã được mã hóa – azium