Javascript AJAX post数据几乎保存到数据库?
在测试模块时,AJAX正确地发布在浏览器的console.log中,Node.js/express4 mongoose.save方法正确地保存到MongoDB测试中 由于某种原因,AJAX post数据尚未进入数据库,尽管它准确地记录了数据Javascript AJAX post数据几乎保存到数据库?,javascript,jquery,ajax,node.js,express,Javascript,Jquery,Ajax,Node.js,Express,在测试模块时,AJAX正确地发布在浏览器的console.log中,Node.js/express4 mongoose.save方法正确地保存到MongoDB测试中 由于某种原因,AJAX post数据尚未进入数据库,尽管它准确地记录了数据 $(document).ready(function(){ $('#SubmitBtn').click(function() { var message = $( "#message" ).val(); cons
$(document).ready(function(){
$('#SubmitBtn').click(function() {
var message = $( "#message" ).val();
console.log(message); // logs as the "user's message"
var AjaxPostData = {'message' : message};
console.log(AjaxPostData); // logs as [object Object]
// make an ajax call
$.ajax({
dataType: 'json',
data: AjaxPostData,
type: 'post',
url:"http://localhost:4200/api/v1/stories",
success: foundAllSuccess,
error: foundAllFailure
});
console.log(AjaxPostData.message); // logs as the "user's message"
});
});
Express4路由:
var router = express.Router(); // an instance of the express Router
var Story = require('./app/models/story'); // load the mongoose model
router.route('/stories')
// create a story (accessed at POST http://localhost:4200/api/v1/stories)
.post(function(req, res) {
var story = new Story(); // create a new instance of the Story model
story.message = req.body.message; // set the message, from the request
console.log(req.body.message); // logs with Postman, yet the ajax post
// save the story, and check for errors
story.save(function(err) {
if (err)
res.send(err);
res.json({ message: 'Story "' + story.message + '" Created' });
});
})
app.use( '/api/v1', router ); // all of the routes are prefixed
替换数据:AjaxPostData
使用数据:JSON.stringifyAjaxPostData,
我不相信数据被正确地传递,这就是为什么它在[Object Object]上发送,结果是ajax点击事件需要e.preventDefault;或返回错误
这两种方法都适用于本例。尽管这里有一篇关于差异的文章:您能更具体地说明错误的性质吗?当您发布AJAX日志时,您的console.log是req.body.message日志吗?我还建议使用新的故事{message:req.body.message}.savecallback,因为它更干净一些。最后,我将删除AjaxPostData定义中的倒逗号,因为据我所知,它们不是必需的。@Michael req.body.message的控制台日志没有记录AjaxPost。。谢谢你建议的格式。。我们将测试它all@Michael根据您的建议修改了格式。。控制台正在使用POSTMAN测试记录req.body.message,而不是ajax。。也删除了倒逗号,仍然没有保存ajax数据。。还有其他建议吗?
$('#SubmitBtn').click(function(e) {
e.preventDefault();
// do something
});
$('#SubmitBtn').click(function() {
//do something
return false;
});