[英]Nodejs and Expressjs sending ajax post request
我在發送http://localhost:1111/user/create
發布數據時遇到問題。 我正在使用Expressjs框架和Redis作為數據庫。 主要問題是它無法在客戶端中獲取文本框的值,並且在發送發布數據后,redis中所有字段的值均未定義。 我不知道這是怎么回事,但這是我的代碼:
server.js中的 app.post
app.post('/user/create', function(req, res) {
var user = req.body.user;
var pass = req.body.pass;
var name = req.body.name;
var email = req.body.email;
return client.hmset('username:' + user, 'password', pass, 'name', name, 'email', email,
function(err, data) {
if (!err) {
return res.send(data);
return console.log(data);
} else {
return console.log(err);
}
});
});
這是關於如何發送帖子數據的jQuery:
<script type="text/javascript">
$("#createbutton").submit(function(event) {
event.preventDefault();
var data = {};
data.name = $('#nameinput').val();
data.email = $('#emailinput').val();
data.username = $('#usernameinput').val();
data.password = $('#passwordinput').val();
JSON.stringify(data);
console.log(data);
$.ajax({
type: 'POST',
url: 'http://localhost:1111/user/create',
data: {data},
dataType: 'application/json',
success: function(data) {
console.log('success');
console.log(data);
}
});
});
</script>
我已經檢查了客戶端和服務器,但是我無法弄清錯誤是什么。 在此先感謝大家。
您的數據變量錯誤,請將您的js代碼更改為以下代碼,然后嘗試一次:
<script type="text/javascript">
$("#createbutton").submit(function(event) {
event.preventDefault();
var data = {};
data.name = $('#nameinput').val();
data.email = $('#emailinput').val();
data.user = $('#usernameinput').val();
data.pass = $('#passwordinput').val();
$.ajax({
type: 'POST',
url: 'http://localhost:1111/user/create',
data: data,
dataType: 'application/json',
success: function(data) {
console.log('success');
console.log(data);
}
});
});
</script>
您將需要使用bodyParser中間件來訪問發布變量。 該中間件獲取原始的發布數據,並將值分配給req.body對象。 檢查http://expressjs.com/api.html#bodyParser
app.use(express.bodyParser());
我不知道expressjs
但是您可以嘗試從中更改dataType
:
dataType: 'application/json'
至:
dataType: 'json'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.