我有一些看起来像这样的前端代码:
$.ajax({
url:target,
data: zform.serialize(),
dataTyp:'json',
type:'POST',
success:function(data, status, jqXHR) {
$(".target", source).html(data.widget.url);
source.find('.edit').hide()
source.find('.saved').show();
},
error:function(jqXHR, textStatus, err) {
alert(textStatus);
});
找到我的表单,将其序列化,并将其发送到所需URL的服务器。这很好,node.js服务器接收它。
然后在节点的请求处理程序中:
m.Target.find({where:{id:linkId, UserId:req.user.id}}).success(function(target){
target.updateAttributes({target:url}).success(function(target){
try{
var response={status:"updated",
widget:{url:target.url}
};
res.send(response);
res.end();
console.log("sent");
}catch(err){
console.log(err);
}
});
});
变量很好,DB通过sequelize更新就好了,调用成功方法。但客户永远不会得到回复。它处于待定状态。 我已尝试将此作为GET和POST,我尝试过res.json,res.send和res.write。没有什么工作,我很困惑。
答案 0 :(得分:0)
我得到了它的工作,但我不知道这是不是造成它的原因。
我在dataType的原始请求中输入了错误:json
改变了我的回应方式:
res.status(201).type('JSON'); res.write(JSON.stringify({widget:{ url: target.dataValues.target, startLvl: target.dataValues.startLvl, endLvl: target.dataValues.endLvl, id: target.dataValues.id } })); res.end(
);