Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用ajax post方法的控制台日志记录数据_Javascript_Jquery - Fatal编程技术网

Javascript 使用ajax post方法的控制台日志记录数据

Javascript 使用ajax post方法的控制台日志记录数据,javascript,jquery,Javascript,Jquery,因此,我试图通过jquery发出post请求,然后将数据对象记录在请求的回调函数中。 客户端: var save = $('<button/>',{ class: 'btn btn-link', id: url, type: 'submit', value: 'Submit', text: 'save for later?', click: function(event){

因此,我试图通过jquery发出post请求,然后将数据对象记录在请求的回调函数中。 客户端:

var save = $('<button/>',{
        class: 'btn btn-link',
        id: url,
        type: 'submit',
        value: 'Submit',
        text: 'save for later?',
        click: function(event){
            var reqData = { article : this.id};
            $.post('/profile', reqData, function(data){
                console.log(data);
            })
        }

我不断收到错误消息“发送后无法设置标题”,如果我注释掉res.send(doc);在.exec承诺中,数据将被保存在console.log中,但页面将快速刷新并删除它。

错误
“发送后无法设置标题”
表示您尝试多次响应。最初会发送最后一个
res.send
,然后一旦计算了
exec
回调的if/else,就会尝试第二次
res.send

看起来您要调用
res.send(doc)
两次。移除底部的呼叫。为了避免页面重新加载,我想您需要调用
event.preventDefault()中。你正在以承诺的形式发送响应,之后,这也是正常的,当它发送previouslyevent.preventDefault时,你有第二次发送。我正在构建一个应用程序(在大多数情况下都能正常工作),它是jQuery和我猜event的一个很好的复习工具。我忘记了,我知道这个问题很简单,我会记住在将来提出更深思熟虑的问题。好的,我看得更清楚了,我知道这个问题很简单,我只是被两种不同的情况困住了。
router.post('/profile', function(req, res) {
console.log(req.body);
// User.find();
console.log(req.user._id);
var article = new Article({article: req.body.article});


article.save(function(error, doc) {
        if (error) {
            res.send(error);
        } else {

            var id = doc._id;
            User.findOneAndUpdate({
                _id: req.user._id
            }, {$push :{
                article: id
            }}).exec(function(err, doc) {
                if (err) {
                    res.send(err);
                } else {
                   res.send(doc);
                }
            })
            res.send(doc);
        }
})