2016-03-02 93 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

相關問題