【问题标题】:getting data from node.js server using query ajax使用查询 ajax 从 node.js 服务器获取数据
【发布时间】:2016-06-15 16:34:37
【问题描述】:

我有点困惑如何在查询中使用 get() 和 post() 从 node.js 服务器获取数据 如果 node.js 服务器从 json 文件解析数据并在 localhost:3000 提供 html, 客户端代码会是这样吗:

$(document).ready(function() {
$.ajax({
    url: 'localhost:3000/',
    dataType: "json",
    success: function(data) {
        $("#test").append(data);
    },
    error: function(jqXHR, textStatus, errorThrown) {
        alert('error ' + textStatus + " " + errorThrown);
    }
});
});

我对数据类型等的含义感到困惑。

【问题讨论】:

    标签: javascript jquery ajax node.js


    【解决方案1】:

    来自jQuery documentation

    dataType(默认:智能猜测(xml、json、script 或 html)) 类型:字符串您期望从 服务器。如果没有指定,jQuery 将尝试根据 响应的 MIME 类型(XML MIME 类型将产生 XML,在 1.4 JSON 将产生一个 JavaScript 对象,在 1.4 脚本将执行 脚本,其他任何内容都将作为字符串返回)。

    因此,您显示的代码期望服务器响应 json 字符串,而不是 HTML。如果您删除 dataType jQuery 将按照解释“猜测”响应内容,我认为您应该这样做。 .ajax 方法也默认进行 GET 调用。如果您想 POST 将您的代码更改为以下 - 假设您使用的是 jQuery 版本 >= 1.9:

    $(document).ready(function() {
      $.ajax({
          url: 'localhost:3000/',
          method: "POST",
          success: function(data) {
              $("#test").append(data);
          },
          error: function(jqXHR, textStatus, errorThrown) {
              alert('error ' + textStatus + " " + errorThrown);
          }
      });
    });
    

    您也可以将jQuery's shorthand methods 用于 GET 和 POST,而不是低级 .ajax 方法。

    【讨论】:

    • 感谢您的帮助!
    • 如果你觉得对,请标记为答案。
    • 只是一个后续,这是否意味着如果我想从服务器调用一个restful api,我必须将url更改为localhost:3000/GET/action/1?跨度>
    • 如果 GET 是 url 的一部分,那么是的。但通常 http 动词不是 url 的一部分,因为您也可以 POST 到该 url。
    • 那么我们在哪里使用 GET 这个词呢?对不起这个愚蠢的问题。我在网上看到的rest api设计资源说 GET /dogs/123/ .... 那么他们的意思是你在输入 URL 时从未真正使用过 GET 吗?
    猜你喜欢
    • 2014-08-04
    • 1970-01-01
    • 2023-03-17
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 2019-07-21
    • 2013-03-18
    相关资源
    最近更新 更多