亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

node.js+Ajax實現獲取HTTP服務器返回數據

2019-11-20 13:51:59
字體:
來源:轉載
供稿:網友

我們看一個HTML5頁面中通過AJAX請求的方式獲取HTTP服務器返回數據的代碼示例.由于我們把服務器的端口指定為1337,并將從端口為80的網站中運行HTML5頁面,因此這是一種跨域操作,需要在HTTP響應頭部中添加Access_Control_Allow_Origin字段,并且將參數指定為允許向服務器請求數據額域名+端口號(省略端口號時允許該域名下的任何端口向服務器請求數據),

靜態頁面:index.html(注:一定要放在服務器環境下,如果是win7系統的話,可以開啟IIS服務,并把頁面考過去直接運行這個頁面,)

復制代碼 代碼如下:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>node中的ajax請求(html5頁面)</title>
    <script type="text/javascript">
        function GetData(){
            var xhr=new XMLHttpRequest();
            xhr.open("GET","http://localhost:1337/",true);
            xhr.onreadystatechange=function(){
                if(xhr.readyState==4){
                    if(xhr.status==200){
                        document.getElementById("res").innerHTML=xhr.responseText;
                    }
                }
            }
            xhr.send(null);
        }
    </script>
</head>
<body>
<input type="button" value="獲取數據" onclick="GetData()" />
<div id="res">dsdf</div>
</body>
</html>

node代碼:

復制代碼 代碼如下:

var http=require("http");
var server=http.createServer(function(req,res){
    if(req.url!=="/favicon.ico"){
        res.writeHead(200,{"Content-Type":"text/plain","Access-Control-Allow-Origin":"http://localhost"});
        res.write("你好啊!");
    }
    res.end();
});
server.listen(1337,"localhost",function(){
    console.log("開始監聽...");
});

首先開啟服務:node server.js

啟動靜態頁面:

點擊按鈕"獲取數據"

如果大家覺得需要配置服務器環境太麻煩,可以借用編輯器的優勢來做.

比如我用的是webstrom 8.0;

當我啟動頁面的時候,瀏覽器中顯示的是這個路徑:

端口是63342.這個時候我們隊代碼做一些修改:

node的 server.js代碼:

復制代碼 代碼如下:

var http=require("http");
var server=http.createServer(function(req,res){
    if(req.url!=="/favicon.ico"){
        res.writeHead(200,{"Content-Type":"text/plain","Access-Control-Allow-Origin":"http://localhost:63342"});
        //res.setHeader();
        res.write("你好啊!");
    }
    res.end();
});
server.listen(1337,"localhost",function(){
    console.log("開始監聽...");
});

修改了"Access-Control-Allow-Origin"的值.

重新運行demo會發現,達到同樣的效果

也可以通過res.seetHeader來單獨設置響應頭部.

可以將上面的res.writeHead()改成res.setHeader();

復制代碼 代碼如下:

var http=require("http");
var server=http.createServer(function(req,res){
    if(req.url!=="/favicon.ico"){
        //res.writeHead(200,{"Content-Type":"text/plain","Access-Control-Allow-Origin":"http://localhost:63342"});
        res.setHeader("Content-Type","text/plain");
        res.setHeader("Access-Control-Allow-Origin","http://localhost:63342");
        res.write("你好啊!");
    }
    res.end();
});
server.listen(1337,"localhost",function(){
    console.log("開始監聽...");
});

細心的同學可能發現了,利用setHeader的方法時,缺少了一個狀態碼,比如200.那么我們在使用res.setHeader的時候,如何來設置狀態碼呢?等會上代碼

ajax在服務器端返回的時候日期:

我們可以在服務器端返回時,刪除這個字段.

設置res.sendData=false;

復制代碼 代碼如下:

var http=require("http");
var server=http.createServer(function(req,res){
    if(req.url!=="/favicon.ico"){
        //res.writeHead(200,{"Content-Type":"text/plain","Access-Control-Allow-Origin":"http://localhost:63342"});
        res.statusCode=200;
        res.sendDate=false;
        res.setHeader("Content-Type","text/plain");
        res.setHeader("Access-Control-Allow-Origin","http://localhost:63342");
        res.write("你好啊!");
    }
    res.end();
});
server.listen(1337,"localhost",function(){
    console.log("開始監聽...");
});

設置了狀態碼,也屏蔽了日期信息.

res.getHeader(name)獲取我們設置的響應頭信息

res.removeHeader(name);刪除我們的頭信息.必須在我們的write方法發送數據之情被調用.

res.headersSent屬性是一個布爾值,當當響應頭已發送時,屬性值為true時;當響應頭未發送時,屬性值為false.

server.js代碼:

復制代碼 代碼如下:

var http=require("http");
var server=http.createServer(function(req,res){
    if(req.url!=="/favicon.ico"){
        if(res.headersSent)
            console.log("響應頭已發送");
        else
            console.log("響應頭未發送");
        res.writeHead(200,{"Content-Type":"text/plain","Access-Control-Allow-Origin":"http://localhost:63342"});
        if(res.headersSent)
            console.log("響應頭已發送");
        else
            console.log("響應頭未發送");       
        res.write("你好啊!");
    }
    res.end();
});
server.listen(1337,"localhost",function(){
    console.log("開始監聽...");
});

運行demo查看結果:

res.write()方法是向客戶端發送數據的,其實他還有一個返回值.

當向客戶端發送的數據量比較小時或網速較快時,node總是將數據直接發送到操作系統的內核緩存區中,然后從內核緩存區中取出數據發送給對方.這個時候write會返回true.

當網速慢或數據量較大時,http服務器并不一定會立刻把數據發送給客戶端,node會把數據緩存在內存中,并在對方可以接受數據的情況下將內存中的數據通過操作系統的內核發送給對方.這時的write返回false.

可以設置test.txt的內容多少來測試結果.

一個簡單的node+ajax效果就實現了.是不是很簡單呢?當然,想制作更加復雜的功能的話,我們還需要進一步的學習,以后我們慢慢來更新。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产乱码久久久久久婷婷| 国产精品亚洲激情| 一区二区三区美女xx视频| 国产视频久久久久久久| 欧美一级电影免费在线观看| 亚洲国产精彩中文乱码av在线播放| 日韩亚洲国产中文字幕| 97免费在线视频| 成人精品一区二区三区电影免费| 午夜精品一区二区三区在线视| 亚洲成人黄色网| 亚洲视频在线观看视频| 国产成人一区二区在线| 精品国产一区二区三区久久狼黑人| 欧美精品videossex88| 国产一区二区三区18| 日韩在线中文视频| 少妇高潮久久久久久潘金莲| 久久这里只有精品视频首页| 国产精品一区二区三区成人| 91香蕉嫩草神马影院在线观看| 日韩免费av在线| 欧美成人免费全部观看天天性色| 久热精品视频在线观看| 久久国产天堂福利天堂| 久久久亚洲欧洲日产国码aⅴ| 国产精品久久激情| 亚洲自拍偷拍一区| 国产这里只有精品| 不用播放器成人网| 欧美在线视频一区二区| 在线观看视频亚洲| 两个人的视频www国产精品| 91亚洲国产成人久久精品网站| 成人天堂噜噜噜| 91免费福利视频| 九九精品在线播放| 欧美成人免费在线观看| 中文字幕亚洲一区二区三区五十路| 综合国产在线视频| 国产99视频精品免视看7| 91精品国产综合久久久久久蜜臀| 中文字幕欧美日韩va免费视频| 91高清免费视频| 黑人巨大精品欧美一区二区一视频| 亚洲在线视频福利| 日韩一区二区欧美| 欧美激情18p| 在线观看欧美成人| 91久久久在线| 日韩一级黄色av| 一区二区欧美久久| 精品久久久精品| 亚洲精品一区中文| 欧美精品在线免费播放| 亚洲国产中文字幕久久网| 久久久免费精品| 亚洲成人在线网| 亚洲欧美日韩国产中文| 亚洲精品网址在线观看| 国产成人av在线播放| 日韩精品在线免费观看视频| 国产噜噜噜噜噜久久久久久久久| 播播国产欧美激情| 国产精品久久婷婷六月丁香| 俺也去精品视频在线观看| 在线日韩日本国产亚洲| 亚洲国产另类久久精品| 91av在线播放| 精品偷拍各种wc美女嘘嘘| 日韩电影大片中文字幕| 色婷婷综合成人av| 91网在线免费观看| 国产九九精品视频| 日韩国产欧美精品一区二区三区| 国产精品欧美日韩| 久久精品视频一| 国产精品成人国产乱一区| 欧美主播福利视频| 欧美激情国产精品| 久久久久久一区二区三区| 91av中文字幕| 欧美精品激情blacked18| 亚洲精品videossex少妇| 欧美怡红院视频一区二区三区| 欧美午夜美女看片| 久久久久免费视频| 欧美大片欧美激情性色a∨久久| 日韩电影免费观看中文字幕| 国产在线98福利播放视频| 久久久亚洲精选| 久久精品中文字幕电影| 久久综合国产精品台湾中文娱乐网| 欧美日韩中文在线| 欧美精品一区二区三区国产精品| 国产精品自产拍在线观看| 中文字幕不卡av| 国产一区二区三区丝袜| 日韩av影片在线观看| 成人免费视频在线观看超级碰| 91精品久久久久久久久久入口| 国产日韩综合一区二区性色av| 久久国产加勒比精品无码| 国产欧美精品一区二区三区-老狼| 欧美高清自拍一区| 欧美成人精品在线播放| 久久精品视频导航| 国产精品久久久久久一区二区| 国产日本欧美一区二区三区在线| 欧美一区二区色| 亚洲香蕉成人av网站在线观看| 久久国产精品影片| 国产做受高潮69| 午夜剧场成人观在线视频免费观看| 91精品久久久久久综合乱菊| xvideos亚洲| 欧美国产精品va在线观看| 国产精品久久久久久久久久东京| 久久久视频在线| 精品五月天久久| 中文字幕自拍vr一区二区三区| 欧美日韩中文字幕在线| 日韩中文第一页| 日韩欧美亚洲范冰冰与中字| 久久久www成人免费精品| 海角国产乱辈乱精品视频| 亚洲网站视频福利| 国产999精品视频| 琪琪第一精品导航| 国产在线视频欧美| 日本高清视频精品| 亚洲精品电影在线| 国产精品观看在线亚洲人成网| 亚洲成人亚洲激情| 91欧美日韩一区| 亚洲国产成人精品久久| 欧美极品美女电影一区| 久久久久久久香蕉网| 久久婷婷国产麻豆91天堂| 欧美激情第1页| 亚洲电影免费观看高清| 性欧美亚洲xxxx乳在线观看| 欧亚精品中文字幕| 成人精品一区二区三区| 7777免费精品视频| 国产偷国产偷亚洲清高网站| 精品美女永久免费视频| 亚洲精品第一国产综合精品| 91久久精品在线| 超在线视频97| 日韩中文字幕精品| 成人免费激情视频| 国产精品91久久久| 中文字幕一区日韩电影| 中文字幕亚洲一区二区三区五十路| 亚洲国产一区自拍| 亚洲国产精品女人久久久| 成人a视频在线观看| 91免费观看网站| 欧美激情亚洲综合一区| 日韩精品在线第一页| 久久久精品网站| 成人信息集中地欧美| 欧美综合激情网|