今天看一下Node.js怎么獲取ajax提交的request 信息
眾所周知,ajax可以在不刷新整個頁面的情況下實現局部刷新,這是相當好的一種方式,能夠讓我們動態更新信息,今天我們看一下怎么用node來接收到前端ajax提交過來的信息
下面我貼一下前端的代碼
index.html的代碼我就不貼了, 因為里面就只有一個按鈕而已,要實現的功能是點擊按鈕提交ajax異步請求
主要貼一下js頁面的代碼
$("button").on("click",function(){ //提交ajax請求 $.ajax({ url:"http://localhost:9999", data:{name:'xiaoming',age:19}, type:"POST", dataType:"json", async:true, timeout:5000, complete:function(){ console.log("end"); }, success:function(data,textStatus,jqXHR){ console.log(data); console.log(textStatus); console.log(jqXHR); }, error:function(textStatus,jqXHR){ console.log("error"); console.log(textStatus); console.log(jqXHR); } });});這樣我們就已經異步提交了一個ajax請求給服務端。
由于我的服務端是用node寫的,我貼一下node.js的代碼
/** * New node file *///載入模塊var http = require("http");function onRequest(req,resp){ //獲取ajax提交的信息 req.on("data",function(data){ //打印 console.log(decodeURIComponent(data)); }); //返回response resp.writeHead(200,{"ContentType":"text/html;charset=utf-8"}); //返回響應尾 resp.end();}//創建服務器http.createServer(onRequest).listen(9999);服務器獲取的結果如下:
name=xiaoming&age=19
乍一看,其實獲取ajax的請求信息是非常簡單,我在node里創建了服務器,然后給request添加data事件,做了一個回調處理,然后就可以獲取到ajax提交過來的數據了
但是這樣的話,我們還是不能靈活的使用這個數據,我們必須用split將其name和age的value分割出來,這是相當不方便的。
于是我們想到了用querystring來解析為json對象,我們只需要稍稍修改一下剛剛的代碼就可以實現
/** * New node file *///載入模塊var http = require("http");var qs = require("querystring");function onRequest(req,resp){ //獲取ajax提交的信息 var currentData = ""; req.on("data",function(data){ //打印 currentData += data; console.log(qs.parse(currentData)); }); //返回response resp.writeHead(200,{"ContentType":"text/html;charset=utf-8"}); //返回響應尾 resp.end();}//創建服務器http.createServer(onRequest).listen(9999);下面是運行的結果
{ name: 'xiaoming', age: '19' }我們也可以將它裝到一個變量里,然后使用它的各種屬性
var temp = qs.parse(data);console.log(temp.name);console.log(temp.age);
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答