我正在尝试在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相关推荐

  1. ajax 上传文件实例,JavaScript使用Ajax上传文件的示例代码

    本文介绍了JavaScript使用Ajax上传文件的示例代码,分享给大家,具体如下: 实现文件的上传主要有两种方式: 使用form表单提交上传 html代码如下: 上传 此时的JavaScript代码 ...

  2. [转]掌握Ajax 第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求 [IBM]

    转自:http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/ 掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步 ...

  3. jquery editable ajax,使用X-editable jQuery库使用来自AJAX请求的数据填充Select2标记输入字段...

    我迫切需要JavaScript专家的一些帮助 . 我花了最近7个小时尝试了数百种代码组合,以获得基本的标签选择输入字段,以便与库 x-editable 和 select2 一起使用 . 我正在构建一个 ...

  4. ajax中解决乱码的问题,关于Ajax请求中传输中文乱码问题的解决方案

    今天遇到一个问题,有关ajax 请求中传输中文,遇到乱码的问题. 如下代码: function UpdateFolderInfoByCustId(folderId, folderName, custI ...

  5. ajax中怎样获取下拉列表,如何从Ajax/Jquery的下拉列表中获取复选框中的数据

    这里是asnwer你可以做的是这样的 echo ''; echo 'Select User'; $sql = "SELECT * from users"; $res = mysql ...

  6. ajax中dom,在(jQuery)ajax请求中获取当前脚本DOM对象

    涉及两个步骤简单的解决方案: 1)找出哪些元素脚本标签是 2)发现,元素 的代码中的前一个兄弟: var scripts = document.getElementsByTagName("s ...

  7. Asp.net中的AJAX学习记录之一 AJAX技术的崛起与Asp.net AJAX的诞生

      最近开始学习Asp.net中的AJAX,可能我的高手朋友们会说:"走还不稳呢!怎么就想学跑了?"呵呵!主要是我在做项目中体会到AJAX真的是很好的一门技术,应该好好的学习一下, ...

  8. .net ajax 怎么写,.NET学习篇--Ajax中Url的写法

    .NET学习篇--Ajax中Url的写法 什么是Ajax AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的 ...

  9. ajax的post跟get区别,Ajax中post与get的区别

    get和post都是向服务器发送一种请求,只是发送机制不同 . 1. GET可以通过在请求URL上添加请求参数, 而POST请求则是作为HTTP消息的实体内容发送给WEB服务器. 2. get方式请求 ...

最新文章

  1. Qunee for HTML5 V2.5新版本发布
  2. 不断审视自己,做一个长期主义者
  3. matlab 绘图2
  4. iOS架构-静态库.a编译时自动导出.h头文件(24)
  5. Unity3D 2017软件安装教程
  6. git推送指令配置_git 常用命令
  7. linux 进程 转存储,Linux memory management——(进程虚存空间的管理)(转)
  8. Android 资讯类App项目实战 第一章 滑动顶部导航栏
  9. Visual C++串口通信编程---多线程异步方式
  10. [转载] boost python numpy_boost.python 与 boost.numpy安装的一些注意事项
  11. Vue+SpringBoot的微信登录
  12. 《HTTP权威指南》思维导图一览全书
  13. C#使用Aforge对uvc协议摄像头亮度属性的更改
  14. 二分法求函数的解(函数零点)
  15. 计算机颜色更换,如何给证件照换底色;怎么快速更换证件照底色
  16. 青岛大学计算机专业春考,青岛大学春季高考分数线2020
  17. 国际化进程加速,上海树图区块链研究院联合创始人伍鸣博士受邀访问香港科技园...
  18. java生成二维码技术实现
  19. 网易易盾js逆向分析
  20. 标准正态分布变量的累积概率分布函数

热门文章

  1. Gartner 容器报告:阿里云与 AWS 并列第一,领先微软、谷歌
  2. 重磅!阿里云发布最新服务等级协议SLA ,多实例可用性升为99.995%
  3. 解读 Knative Eventing v0.10.0 最新版本特性
  4. 深度学习目标检测系列:一文弄懂YOLO算法|附Python源码
  5. QuickBI助你成为分析师——搞定数据源
  6. 阿里云迁云方式大汇总 1
  7. 冲击中国超融合第一,浪潮的底气从何而来?
  8. 腾讯车联发布TAI3.0:三步实现汽车智能进化,2个月快速上车
  9. AI又被彩虹吹?!新浪财经:应届博士算法毕业,80万年薪被疯抢
  10. 香农编码二叉树c语言,shannon码的编码实验总结.docx