javascript
ajax中res和req,javascript – 来自AJAX调用的res.redirect
我正在嘗試在ajax put請求之后進行重定向.我打算使用純JS客戶端進行驗證.
客戶:
$(document).ready(function() {
login = () => {
var username = $("[name='username']").val()
var password = $("[name='password']").val()
$.ajax({
type: "put",
url: '/login',
data: {
username: username,
password: password
}
// success: function(response) {
// console.log('Success:')
// console.log(response.user)
// Cookies.set('username', response.user.username)
// Cookies.set('first_name', response.user.first_name)
// Cookies.set('last_name', response.user.last_name)
// Cookies.set('email', response.user.email)
// window.location.href = window.location.origin + '/'
// },
// error: function(error) {
// console.log("Error:")
// console.log(error)
// }
})
}
logout = () => {
console.log("Log out clicked.")
Cookies.remove('username')
Cookies.remove('first_name')
Cookies.remove('last_name')
Cookies.remove('email')
window.location.href = window.location.origin + '/logout'
}
})
服務器:
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('main')
});
router.put('/login', function(req, res) {
// Password is not encrypted here
console.log('req.body')
console.log(req.body)
User.findOne({ username: req.body.username }, function(err, user) {
// Password is encrypted here
if (err) throw err
console.log('user')
console.log(user)
bcrypt.compare(req.body.password, user.password, function(err, result) {
if (result) {
var token = jwt.encode(user, JWT_SECRET)
// return res.status(200).send({ user: user, token: token })
return res.redirect('/')
} else {
return res.status(401).send({error: "Something is wrong."})
}
})
})
})
成功登錄后,我無法獲取main.hbs.我的注釋代碼有效,但我正在嘗試重定向服務器端而不是客戶端,因為我被告知它對安全性更好.
解決方法:
我不認為你想做什么是可能的. AJAX請求僅用于來回傳遞數據.現在發生的事情是你需要編寫客戶端行為的腳本.這意味著AJAX請求將傳遞302和其他數據一起傳遞到JS上的回調.不能從服務器更改客戶端行為.您可以使用AJAX返回的值執行某些操作.如果是500,拋出錯誤信息,200做某事等.
使服務器重定向工作的唯一方法是通過傳統的HTML表單提交.
標簽:jquery,javascript,ajax,express
來源: https://codeday.me/bug/20190611/1217514.html
總結
以上是生活随笔為你收集整理的ajax中res和req,javascript – 来自AJAX调用的res.redirect的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 70进货卖100利润是多少_一只周黑鸭随
- 下一篇: centos7安装php5.2yum源操