2016-03-02 92 views
0

我对如何在查询中使用get()和post()从node.js服务器获取数据有点困惑,如果node.js服务器解析来自node.js服务器的数据一个JSON文件,并在本地主机提供的HTML:3000, 将客户端代码是这个样子:使用查询ajax从node.js服务器获取数据

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

我感到困惑的是什么数据类型等手段。

回答

2

jQuery documentation

的数据类型(默认:智能猜测(XML,JSON,脚本或HTML)) 类型:String类型,你希望从 服务器返回的数据。如果没有指定,jQuery将尝试根据响应的MIME类型 来推断它(XML MIME类型将产生XML,1.4中 JSON将生成JavaScript对象,1.4脚本将执行 脚本,并且任何内容否则将作为字符串返回)。

因此,您显示的代码期望服务器响应一个json字符串,而不是HTML。如果你删除dataType,jQuery将按照解释的“猜测”响应内容,这是我相信你应该做的。 也.ajax方法默认进行GET调用。如果你想发布更改代码下面的 - 假设你使用一个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而不是低层次的阿贾克斯方法。

+0

感谢您的有用答案! – cuziluvtosmile

+0

如果您认为它是正确的,请将其标记为答案。 – Grasshopper

+0

只是后续,这是否意味着如果我想从服务器调用一个restful api,我将不得不将URL更改为localhost:3000/GET/action/1? – cuziluvtosmile

相关问题