使用Ajax与服务端进行数据的交互(附案例)

2020-09-19  本文已影响0人  大南瓜鸭

先来说说Ajax是什么。官方解释:Ajax,是Asynchronous JavaScript + XML的简写。这种技术能够向服务器请求额外的数据而无须卸载页面(即刷新),会带来更好的用户体验。说白了,就是一种和服务端进行数据交互的方式。

一、两个重要部分

  //我们使用函数式编程,先封装一个Ajax
  ajax()
  var xhr
  function ajax(){
      //第一步:创建一个Ajax
      xhr=new XMLHttpRequest()
      //第二步:请求信息,分为请求方式和地址
      xhr.open("POST","http:/10.20.159.134:4001")
      //第三步:数据完成加载后执行函数
      xhr.addEventListener("load",loadHandler)
      //第四步:发送信息给服务端,如果使用的是POST的请求方式则需要在这里发送,如果是GET的请求方式,则直接在地址后面携带信息
      xhr.send("你要发送的数据")
  }
  function loadHandler(){
      console.log(xhr.response)//打印从服务端接受的数据
  }
//创建协议
var http = require("http");
//同样也是固定写法
var querystring = require("querystring");
//分别是:前端传送过来的数据、请求头、响应头
var data, req, res;
//创建服务
var server = http.createServer(creatHandler);
//开启监听,如果服务器成功启动,则会在终端输出"服务开启"
server.listen(4001, "10.20.159.134", console.log("服务开启"));
//获取请求头和响应头,给请求头添加相应事件
function creatHandler(_req, _res) {
    req = _req;
    res = _res;
    req.on("data", dataHandler);
    req.on("end", endHandler);
}
//接收前端数据
function dataHandler(_data) {
    data = String(_data);
}
//处理数据
function endHandler() {
    //写入头部
    res.writeHead(200, {
        "content-type": "text/html;charset=utf-8",
        "Access-Control-Allow-Origin": "*",
        "Access-Control-Allow-Headers": "*"
    });
    //判断请求类型、转换数据格式
    var obj;
    if (req.method.toLowerCase() === "get") {
        if (req.url.indexOf("?") > -1) {
            //获取地址后面携带的数据
            obj = querystring.parse(req.url.split("?")[1]);
        }
    } else if (req.method.toLowerCase() === "post") {
        try {
            //把数据转换为JSON格式
            obj = JSON.parse(data);
        } catch (e) {
            //把JSON格式转化为字符串
            obj = querystring.parse(data);
        }
    } else {
        res.end();
        return;
    }
    //发送数据给前端
    res.write(data);
    res.end();
}

二、实际开发中的应用

以电商网站唯品会为例,来看看有哪些功能可以使用这项技术来实现

上一篇 下一篇

猜你喜欢

热点阅读