使用Object.keys(req.body)
获取密钥。即'{"password":"myinputvalue"}'
。
我不确定为什么会发生这种情况,但是当我通过获取POST发送它时,我一直将输入值作为键存储在json对象中]
从客户发送
<script type="text/javascript"> $(function(){ //show the modal when dom is ready $('#loginModal').modal('show'); }); async function postData(url = '',data) { // Default options are marked with * const response = await fetch(url, { method: 'POST', // *GET, POST, PUT, DELETE, etc. mode: 'no-cors', // no-cors, *cors, same-origin cache: 'no-cache', // *default , no-cache, reload, force-cache, only-if-cached credentials: 'same-origin', // include, *same-origin, omit headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, redirect: 'follow', // manual, *follow, error referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url body: JSON.stringify(data) // body data type must match "Content-Type" header }); return response.json(); // parses JSON response into native JavaScript objects } document.getElementById("loginButton").addEventListener('click',function(){ console.log('sending data',document.getElementById("passholder").value) postData(`http://${window.location.hostname}:3000/authenticate`, {password: document.getElementById("passholder").value} ) .then(() => {console.log('returned from server') }); }) </script>
Express中的索引js路由
router.post('/authenticate', function(req, res, next) { console.log(req.body) });
我得到的记录
{ '{"password":"myinputvalue"}': '' }
我知道这个值已经是JSON,所以我无法解析它,有人知道如何从键中提取值。显然我不能做req.body.password .....有什么方法可以做req.body.child.value吗?任何信息都将是惊人的,谢谢。
我不确定为什么会发生这种情况,但是当我通过从客户端
使用Object.keys(req.body)
获取密钥。即'{"password":"myinputvalue"}'
。
然后使用JSON.parse()
将密钥解析为JSON。
然后只需在解析的JSON对象上使用.
运算符即可获取password
。
const key = Object.keys(req.body)[0];
const parsedKey = JSON.parse(key);
const password = parsedKey.password;
使用Object.keys(req.body)
获取密钥。即'{"password":"myinputvalue"}'
。