nodejs express,ajax发布w/jquery和接收响应

thr*_*801 21 ajax jquery node.js express

快速响应我的jquery ajax请求时遇到一些麻烦.实际发布工作正常,但无论我尝试什么,我似乎无法从我的应用程序实际获得我可以使用的数据响应.起初它只是张贴和不断挂起,就像一分钟之后它会响应一个警告说"XML文档加载"(不知道它来自哪里) - 无论如何,现在它给了我

SyntaxError:IncomingMessage中解析(本机)时出现意外的标记ILLEGAL.

在我的快递App中,我有:

    app.post('/save', function(req, res) {
      console.log(req.body.objectData);
      res.contentType('json');
      res.send({ some: 'json' });
    });
Run Code Online (Sandbox Code Playgroud)

在我的jquery:

  $.ajax({
    url: "/save",
    type: "POST",
    dataType: "json",
    data: {objectData: someObject},
    contentType: "application/json",
    cache: false,
    timeout: 5000,
    complete: function() {
      //called when complete
      console.log('process complete');
    },

    success: function(data) {
      console.log(data);
      console.log('process sucess');
   },

    error: function() {
      console.log('process error');
    },
  });
Run Code Online (Sandbox Code Playgroud)

Pas*_*nes 21

您没有发送有效的JSON响应,但是包含该单词的字符串json因此JSON.parse()在客户端失败.试试这个:

app.post('/save', function(req, res) {
  console.log(req.body.objectData);
  res.contentType('json');
  res.send({ some: JSON.stringify({response:'json'}) });
});
Run Code Online (Sandbox Code Playgroud)

JavaScript Object Notation是一种以对象格式在应用程序之间共享数据的方法.但是,如果没有先将对象转换为字符串并将其作为单个变量发送,则无法通过HTTP请求发送对象.功能JSON.parse()JSON.stringify()为我们这样做.