1. 程式人生 > >Ajax+Node.js前後端交互最佳入門實踐(05)

Ajax+Node.js前後端交互最佳入門實踐(05)

處理 如果 js引擎 list scrip javascrip 發送 內容 htm

5.ajax簡介

5.1.什麽是ajax

Asynchronous JavaScript and XML ,異步的javascript和XML

5.2.使用ajax有什麽用

數據交互,可以從服務器獲取到數據,也可以從前臺把數據發送到後臺服務器

5.3.如何使用ajax

5.3.1 ajax程序流程

ajax技術就相當於使用js引擎去模擬瀏覽器提交的行為,試想一下,如果要去訪問一個網頁要經歷幾個步驟?

1、打開瀏覽器

2、輸入網址

3、回車提交 發送請求

4、等待服務器響應 返回內容

ajax技術使用js引擎去發送數據實際上也有以上幾個步驟。

舉個栗子: index.html代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<button id="btn">獲取數據</button>
<div id="box"></div>
<script>
  var oBtn = document.getElementById(‘btn‘);
  var oBox = document.getElementById(‘box‘);
  oBtn.onclick = function () {
    var xhr = new XMLHttpRequest();
    xhr.open(‘get‘, ‘/getdata‘, true);
    xhr.send();
    xhr.onreadystatechange = function () {
      if(xhr.readyState === 4 && xhr.status === 200){
        oBox.innerText = xhr.responseText;
      }
    }
  }
</script>
</body>
</html>

  

下面是服務器端index.js代碼:

var http = require(‘http‘);
var url = require(‘url‘);
var fs = require(‘fs‘);
var app = http.createServer(function (req, res) {
  res.setHeader(‘content-type‘, ‘text/html;charset=utf-8‘);
  var url_obj = url.parse(req.url);
  if(url_obj.pathname === ‘/‘){
    fs.readFile(‘./index.html‘,‘utf-8‘, function (err, data) {
      if(!err){
        res.write(data);
        res.end();
      }
    })
  }
  // 處理ajax請求
  if(url_obj.pathname === ‘/getdata‘){
    res.write(‘hello world‘);
    res.end();
  }
});
app.listen(3000);

  

Ajax+Node.js前後端交互最佳入門實踐(05)