[英]Cant get jquery AJAX to work node js express
我一直在嘗試讓ajax在Node js上工作。 它是第一次使用ajax,因此我一直在嘗試使用控制台對其進行測試以檢查其是否正常工作,但是每次嘗試時,控制台上都沒有響應。
這是我的代碼。
<script>
function getMessage() {
var data = $("#messageselect").val()
$.ajax({
url: "/message",
type: "POST",
data: JSON.stringify(data)
dataType: 'json',
success: function(data) {
console.log(data);
}
error : function(err)
console.log("error fetching message");
});
}
</script>
服務器
app.post('/message', function(req, res) {
console.log(JSON.stringify(req.body));
Message.findOne({ 'page.message' : req.data }, function(err, message) {
if(err)
throw err;
res.send(message);
});
});
html
<form method="POST">
<select multiple="multiple" class="messageselect" onchange="getMessage()" id="messageselect">
<% if(message) { %>
<% for(i=messagecount-1;i>=0;i--) { %>
<option value="<%= message[i].page.message %>">From: <%= message[i].page.username %> Message: <%= message[i].page.messagetitle %></option>
<% } %>
<% } %>
</select><br><br><br>
</form>
我猜這是您的代碼中的錯別字之一:
var = data $("#messageselect").val()
//--^^--------------------------------worng way to assign.
jQuery.ajax()
需要一個對象來發送:
var data = { data : $("#messageselect").val() };
在服務器上,您可以使用req.body
獲取發布的數據:
console.log(req.body.data);
注意:
為此,您需要具有body-parser
,因此請確保將其包含在上面的代碼配置中。
您能否嘗試使用$http
這樣的格式,
$http.post(//url , //data )
.success (function() {})
.error(function() {});
$.ajax({
url: "/message",
type: "POST",
data: JSON.stringify(data)
dataType: 'json',
success: function(data) {
console.log(data);
}
error : function(err)
console.log("error fetching message");
});
他們在錯誤處理程序中缺少括號
error : function(err) {
console.log("error fetching message");
}
也許不是正確的方法,所以您也可以嘗試:
$.ajax({
url: '/message',
type: 'POST',
dataType: 'JSON',
data: {JSON.stringify(data)},
success: function(data) {
console.log(data);
}
error : function(err) {
console.log("error fetching message");
}
});
您是否嘗試過使用curl
在服務器上發布內容?
除了現有的答案,您還應該在AJAX請求中傳遞正確的Content-Type
:
$.ajax({
url: "/message",
type: "POST",
data: JSON.stringify(data)
dataType: 'json',
contentType: 'application/json' //here it is
//...
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.