成功没有回应,我使用过这段代码:
客户代码:
function add(){
var values = formserial(addd);
var tok = "abc",
var url= 'http://localhost:8181/add';
$.ajax({
type: "POST",
url:url,
dataType: "json",
data:{ss:values,tok:tok},
success: function(response){
alert(response);
},
error: function(jqXHR, textStatus, err) {
alert('text status '+textStatus+', err '+err)
}
});
}
服务器代码:
router.route('/add')
.post(function(req, res) {
res.header("Access-Control-Allow-Origin", "*");
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.json("New added!");
console.log(""New added!");
});
控制台显示“新添加”,但成功不会提醒响应。 有解决方案吗?
答案 0 :(得分:0)
您必须返回 http成功状态(200):
var response = {
status : 200,
success : 'New added!'
}
res.end(JSON.stringify(response));
否则客户端不知道响应状态。
代码200
代表确定:请求已成功。
有关所有状态代码,请参阅this。
我希望它可以帮助你,再见。
更新替代jQuery.post():
$.post( url, { "ss":"values", "tok":"tok" }, function( data ) {
alert(response);
}, "json");
答案 1 :(得分:0)
在我的情况下,导致此问题的主要问题是响应标头中缺少"Access-Control-Allow-Origin": "*"
。