Я не могу понять, почему hasOwnProperty возвращают ложные по следующему сценарию:Почему isOwnProperty возвращает false?
стороне клиента:
<html>
<head>
<script type="text/javascript">
var client = [
{"clientName":"", "clientNickName": ""},
{"clientName":"", "clientNickName": ""},
{"clientName":"", "clientNickName": ""}
];
function onSubmit() {
// update data
client[0].clientName = "AAA";
client[0].clientNickName = "BBB";
client[1].clientName = "CCC";
client[1].clientNickName = "DDD";
client[2].clientName = "EEE";
client[2].clientNickName = "FFF";
// create request
xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST","~/process_post",true);
xmlhttp.setRequestHeader("Content-Type", "application/json");
// send
xmlhttp.send(JSON.stringify(client));
return true;
}
</script>
</head>
<body >
<form action="http://127.0.0.1:8081/process_post" method="POST">
User Name:
<input type="text" name="userName">
<br>
Nick Name:
<input type="text" name="nickName">
<br>
<input type="submit" value="Submit" onclick="return onSubmit()">
<br>
</form>
</body>
</html>
стороне сервера:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(express.static('public'));
app.post('/process_post', function (req, res) {
var x = req.body;
if (x[0].hasOwnProperty('clientName')) {
console.log("yes: clientName exsists");
}
console.log("result: " + req.body);
})
var server = app.listen(8081, function() {
var host = server.address().address
var port = server.address().port
console.log("Example app listening at http://%s:%s", host, port)
})
Я обновил Q, после того, как получить некоторые комментарии, которые не помогли.
Почему сервер не анализирует данные json правильно? Катастрофа сервера при вызове hasOwnProperty на х [0]: «TypeError: Не удается прочитать свойство„hasOwnProperty“неопределенных»
Благодарности
Вы отправляете массив. Свойства 'client' и' clientName' существуют в элементах массива, а не в самом массиве. Попробуйте 'x [0] .hasOwnProperty ('clientName')'. –
Не работает, он разбивается (TypeError: Не удается прочитать свойство hasOwnProperty не определено) –
Проверьте, какие данные фактически отправляются на сервер –