如何解决从单独的 Vue JS 前端使用 Hapi JS API request.payload 未定义
我正在 Hapi JS 上迈出第一步。我的应用与 SQL Server 数据库连接。
但是,我正在尝试将登录数据从 Vue CLI JS 前端发送到 Hapi JS Api,为此我使用了 axios。 Login是一个“SELECT * FROM”查询,所以我在axios函数代码中加上了“get”。
这是有效的功能,但我无法通过 URL 发送密码,它不安全,使用 F12 您可以查看是否免费加密的用户凭据。
这是接收数据的Hapi JS路由。它是这样工作的,但对我来说这样做不值得。我希望我的代码像这样工作:
axios 函数
Hapi JS 路由使用“request.payload”代替“request.query”
但是当我尝试这个时,控制台中出现一个错误:“无法从 request.payload of undefined 中解构用户名”,实际上 request.payload 的 console.log 是 undefined :CI 真的需要帮助。
>解决方法
您的问题源于您的端点 HTTP 方法。 HTTP GET 请求不能有负载。您应该将其作为 POST 请求发送。
在 axios 上:
axios.post(config.url,{ username: parametros.username,password: parametros.password }).then(...)
在 hapi 方面,您应该在路由定义中设置 method: 'POST'
。那
您现在应该可以访问 request.payload
属性的方式。您还应该验证从客户端收到的有效负载。以下是有关它的一些文档:https://hapi.dev/tutorials/validation/?lang=en_US。
另外,如果您想将 cookie 添加到服务器的响应中,您应该使用响应工具包(处理程序中的第二个参数 h
)设置它:
return h.response(someValue).state('auth-cookie',{ NOM_USUARIO: account.NOM_USUARIO })
这里有一些文档可以帮助您: https://hapi.dev/api/?v=20.1.0#-hstatename-value-options
祝你好运和快乐编码。 ?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。