【问题标题】:jQuery ajax calls with nodeJS使用 nodeJS 的 jQuery ajax 调用
【发布时间】:2016-09-15 16:34:25
【问题描述】:

这些是我的代码块。 API端点

      app.get('/clients/zvb/:id', function(req, res) {
console.log('ZVB Query loaded as var = file;')
var path = './public/queries/zvb.sql'
var zvb = fs.readFileSync(path, "utf8")
zvb = zvb.splice(25, 0, req.params.id)
request.query(zvb, function(err, recordset) {
  console.log(recordset);
  res.end(JSON.stringify(recordset));
});

})

然后是我的 index.html,我尝试从端点获取数据。

        $.ajax({
    type: 'GET',
    url: 'http://localhost:8081/clients/zvb/16601',
    dataType: 'jsonp',
    success: function(data) {
        console.log(data);
        console.log('we got to here..')
    }
});

目前没有太多事情发生。当我尝试在终端中手动运行 ajax 调用时,我得到了;

    Object {readyState: 1}

端点正在工作,如果我查看它,我可以看到我正在寻找的 JSON。

汤姆

【问题讨论】:

  • 如果你想发送数据,你应该从文档中res.send()res.json(),而不是res.end()。在您的 Ajax 调用中,您不应该期待“json”而不是“jsonp”吗?
  • dataType: 'jsonp', 为什么?你知道jsonp是什么吗?
  • readFileSync 永远不要在服务器上使用此方法,而不是接收 http 请求。请改用异步版本。

标签: javascript jquery ajax node.js api


【解决方案1】:

如果您使用的是 jquery 1.5+,这些速记方法非常易于使用。 (我不能评论或会问)。文档在这里http://api.jquery.com/category/ajax/shorthand-methods/

$.get( "http://localhost:8081/clients/zvb/16601", function(data) {
  var data = JSON.parse(data);
  })
  .done(function() {

  })
  .fail(function() {

  })
  .always(function() {

  });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多