Ajax成功不会与节点js一起执行

时间:2017-06-09 10:10:56

标签: javascript json node.js ajax

成功没有回应,我使用过这段代码:

  

客户代码:

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!");
    });

控制台显示“新添加”,但成功不会提醒响应。 有解决方案吗?

2 个答案:

答案 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": "*"