我有一些前端代码如下所示:
$.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 服务器收到它。
然后在 Node 的请求处理程序中:
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);
}
});
});
变量输入正常,数据库通过 sequelize 更新正常,成功方法被调用。但是客户永远得不到回应。它只是处于待定状态。 我已经尝试将此作为 GET 和 POST 来执行,并且我已经尝试过 res.json、res.send 和 res.write。没有任何效果,我很困惑。
最佳答案
我成功了,但我不知道这是否是导致它的原因。
我在 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(
);
关于node.js - 表示不发送对 ajax post 的响应或获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22238041/