无法将jquery AJAX用于工作节点js express
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
//...
});
相关文章:
- 节点J的路由不工作
- 如何使用javascript操作SVG节点,使其在MS Edge中工作
- 只需添加一个'允许跨来源请求'到我的节点应用程序工作
- OpenVPN与节点,它是如何工作的
- 节点:zlib.gunzip 可以工作,但不能 zlib.inflate
- Firebase推送通知-节点工作程序
- 功能原型节点不工作
- domparser删除节点不工作
- 获取下一个不工作Javascript DOM的同级父节点的子节点
- 从HTML代码段创建节点列表后,.find()未按预期工作
- 在节点中,使用Q,使两个函数并行工作,但只等待第一个函数实现其承诺
- 节点's模块async没有'没有按预期工作
- 节点中的空对象 X 射线抓取器.js不工作
- 将节点添加到 KendoUI 树视图无法按预期工作
- 节点 JS 最初只需要工作(调试)
- 我可以在 MVC 3.0 中获得一个工作 Asp.NET jsTree 4 示例,并异步加载节点
- Socket.io 不工作,节点Js
- 使节点.js代码在浏览器中工作
- 节点 js 中的闭包未按预期工作
- 无法将jquery AJAX用于工作节点js express