您好,登錄后才能下訂單哦!
今天看一下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);
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。