vue体验(前后端交互)(代码片段)

zhangbeizhen18 zhangbeizhen18     2023-01-08     348

关键词:

记录:263

体验XMLHttpRequest、jquery、Promise、fetch、axios的异步方式调用后端接口。

本例环境

后端:node.js、express。

前端:Vue.js、HTML、CSS、jQuery、axios。

方式:分别使用XMLHttpRequest、jquery、Promise、fetch、axios的异步方式调用后端接口。

Ajax:Asynchronous Javascript And XML(异步JavaScript和XML)。在网页中利用 XMLHttpRequest对象和服务器进行数据交互的方式。

本例目录结构:

vue_demo02\\server目录:存放后端相关代码。

vue_demo02\\front目录:存放前端相关代码

名词

express:web application framework for node.是一个简洁而灵活的node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用

Nodemon:Nodemon is a utility, that will monitor for any changes in your source and automatically restart your server.一款非常实用的工具,用来监控 node.js 源代码的任何变化和自动重启服务器。

DOM:文档对象模型(Document Object Model)。

1.体验基于node.js搭建简单服务器

vue_demo02\\server目录中。

index.js:服务入口文件,使用nodemon命令启动即可;

vue_demo02\\server\\node_modules目录:存放安装依赖模块;

vue_demo02\\server\\public目录:存放静态文件。

1.1初始化vue_demo02/server

使用VS Code编辑器打开vue_demo02

1.1.1 点击菜单Terminal->New Terminal开一个命令行Terminal窗口

1.1.2 进入vue_demo02\\server目录

1.1.3 安装express模块

执行指令:npm install express

1.1.3 安装nodemon模块

执行指令:npm install -g nodemon

1.2在vue_demo02/server/index.js初始化服务器

代码如下:

//1.导入模块
const express = require('express');
const app = express();
//2.配置服务器
app.use(express.urlencoded( extended: false ));
app.use(express.json());
app.all('*', function (req, res, next) 
  res.header("Access-Control-Allow-Origin", "*");
  res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
  res.header("Access-Control-Allow-Headers", "X-Requested-With");
  res.header('Access-Control-Allow-Headers', 'Content-Type');
  res.header('Content-Type', 'application/json;charset=utf-8')
  next();
);
//3.发布服务
app.get('/getInfo',(req,res)=>
  console.log('接收到浏览器请求.');
  var girInfo='身高:160;体重:100;罩杯:C';
  res.send(girInfo);
);
app.get('/getGirlInfo', (req, res) => 

  var girlInfo = 
    id: 1,
    name: 'ZhangHz',
    height: '161',
    weight: '51',
    cup: 'B'
  ;
  if (req.query.name != 'ZhangHz') 
    girlInfo='请核对后,再查询.';
  ;
  res.send(girlInfo);
);

app.post('/getGirlInfoPost', (req, res) => 

  var girlInfo = 
    id: 1,
    name: 'ZhangBj',
    height: '162',
    weight: '52',
    cup: 'C'
  ;
  if (req.body.name != 'ZhangBj') 
    girlInfo='请核对后,再查询.';
  ;
  res.send(girlInfo);
);
//4.启动服务器
app.listen(8082, () => 
  console.log('express服务器启动成功.');
  console.log('监听端口: 8082')
);

1.3在控制台启动服务器

打开cmd.exe控制台进入vue_demo02\\server目录

执行指令:nodemon index.js

启动日志:

1.4在浏览器发起请求

请求地址:http://127.0.0.1:8082/getInfo

 1.4.1服务器端日志

接收到浏览器请求

 1.4.2浏览器返回值

浏览器返回请求信息:

2.体验XMLHttpRequest

XMLHttpRequest对象提供了对 HTTP 协议的完全的访问,包括做出POST和HEAD请求以及GET请求。可以同步或异步地返回Web服务器的响应,能够以文本或者一个 DOM 文档的形式返回内容。

主流js的前后端交互框架均封装了的XMLHttpRequest对象。

在jQuery.js中:

jQuery.ajaxSettings.xhr = function() 
	try 
		return new window.XMLHttpRequest();
	 catch ( e ) 
;

在axios.js中

var request = new XMLHttpRequest();

2.1HTML标签

<div id="app">
<div class="grid">
  <div><strong>体验前后端交互-XMLHttpRequest</strong></div>
  <div class="titlePad" style="color: blue;">1.XMLHttpRequest的GET请求</div>
  <div class="buttonPad"><button @click='getGirlInfo'>点击</button></div>
  <div>
      <table>
          <thead>
              <tr>
                  <th>姓名</th>
                  <th>身高</th>
                  <th>体重</th>
                  <th>罩杯</th>
              </tr>
          </thead>
          <tbody>
              <tr>
                  <td>girlInfo.name</td>
                  <td>girlInfo.height</td>
                  <td>girlInfo.weight </td>
                  <td>girlInfo.cup </td>
              </tr>
          </tbody>
      </table>
  </div>

  <div class="titlePad" style="color: blue;">2.XMLHttpRequest的POST请求</div>
  <div class="buttonPad"><button @click='getGirlInfoPost'>点击</button></div>
  <div>
      <table>
          <thead>
              <tr>
                  <th>姓名</th>
                  <th>身高</th>
                  <th>体重</th>
                  <th>罩杯</th>
              </tr>
          </thead>
          <tbody>
              <tr>
                  <td>girlInfoPost.name</td>
                  <td>girlInfoPost.height</td>
                  <td>girlInfoPost.weight </td>
                  <td>girlInfoPost.cup </td>
              </tr>
          </tbody>
      </table>
  </div>
</div>
</div>

2.2css代码

<style type="text/css">
.grid 
    margin: auto;
    width: 520px;
    text-align: center;


.grid table 
    border-top: 1px solid #f7b62a;
    width: 100%;
    border-collapse: collapse;


.grid th,
td 
    padding: 10;
    border: 1px solid #f7b62a;
    height: 35px;
    line-height: 35px;


.grid th 
    background-color: #f7b62a;


.titlePad 
    margin-top: 5px;
    margin-bottom: 5px;


.buttonPad 
    margin-bottom: 5px;

</style>

2.3js代码

//异步GET请求
function getGirlInfoByGet(vueThisObj) 
    var vueThis = vueThisObj;
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "http://127.0.0.1:8082/getGirlInfo?name=ZhangHz");
    xhr.send();
    xhr.onreadystatechange = function () 
        if (xhr.readyState == 4 && xhr.status == 200) 
            vueThis.girlInfo = JSON.parse(xhr.responseText);
         else 
        
    ;

//异步POST请求
function getGirlInfoByPost(vueThisObj) 
    var vueThis = vueThisObj;
    var xhr = new XMLHttpRequest();
    xhr.open("POST", "http://127.0.0.1:8082/getGirlInfoPost");
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
    xhr.send("name=ZhangBj&height=162");
    xhr.onreadystatechange = function () 
        if (xhr.readyState == 4 && xhr.status == 200) 
            vueThis.girlInfoPost = JSON.parse(xhr.responseText);
         else 
        
    ;

2.4对应Vue代码

var vm = new Vue(
    el: '#app',
    data: 
        girlInfo: ,
        girlInfoPost: ,
    ,
    methods: 
        getGirlInfo: function () 
            getGirlInfoByGet(this);
        ,
        getGirlInfoPost: function () 
            getGirlInfoByPost(this);
        
    
);

注意:

在Vue的vm实例的getGirlInfo函数中,将this对象传入给getGirlInfoByGet,作用是给getGirlInfoByGet的onreadystatechange对应回调函数使用。

原因:onreadystatechange对应回调函数的this是指向getGirlInfoByGet而不是指向Vue的vm实例。

2.5后端代码

app.get('/getGirlInfo', (req, res) => 

  var girlInfo = 
    id: 1,
    name: 'ZhangHz',
    height: '161',
    weight: '51',
    cup: 'B'
  ;
  if (req.query.name != 'ZhangHz') 
    girlInfo='请核对后,再查询.';
  ;
  res.send(girlInfo);
);
app.post('/getGirlInfoPost', (req, res) => 

  var girlInfo = 
    id: 1,
    name: 'ZhangBj',
    height: '162',
    weight: '52',
    cup: 'C'
  ;
  if (req.body.name != 'ZhangBj') 
    girlInfo='请核对后,再查询.';
  ;
  res.send(girlInfo);
);

2.6效果

运行效果如下:

3.体验jquery的ajax

jquery的ajax执行AJAX(异步 HTTP)请求。

3.1HTML标签

<div id="app">
<div class="grid">
  <div><strong>体验前后端交互-jquery的ajax</strong></div>
  <div class="titlePad" style="color: blue;">1. jquery的ajax的GET请求</div>
  <div class="buttonPad"><button @click='getGirlInfo'>点击</button></div>
  <div>
      <table>
          <thead>
              <tr>
                  <th>姓名</th>
                  <th>身高</th>
                  <th>体重</th>
                  <th>罩杯</th>
              </tr>
          </thead>
          <tbody>
              <tr>
                  <td>girlInfo.name</td>
                  <td>girlInfo.height</td>
                  <td>girlInfo.weight </td>
                  <td>girlInfo.cup </td>
              </tr>
          </tbody>
      </table>
  </div>

  <div class="titlePad" style="color: blue;">2.jquery的ajax的POST请求</div>
  <div class="buttonPad"><button @click='getGirlInfoPost'>点击</button></div>
  <div>
      <table>
          <thead>
              <tr>
                  <th>姓名</th>
                  <th>身高</th>
                  <th>体重</th>
                  <th>罩杯</th>
              </tr>
          </thead>
          <tbody>
              <tr>
                  <td>girlInfoPost.name</td>
                  <td>girlInfoPost.height</td>
                  <td>girlInfoPost.weight </td>
                  <td>girlInfoPost.cup </td>
              </tr>
          </tbody>
      </table>
  </div>
</div>
</div>

3.2css代码

<style type="text/css">
.grid 
    margin: auto;
    width: 520px;
    text-align: center;


.grid table 
    border-top: 1px solid #f7b62a;
    width: 100%;
    border-collapse: collapse;


.grid th,
td 
    padding: 10;
    border: 1px solid #f7b62a;
    height: 35px;
    line-height: 35px;


.grid th 
    background-color: #f7b62a;


.titlePad 
    margin-top: 5px;
    margin-bottom: 5px;


.buttonPad 
    margin-bottom: 5px;

</style>

3.3js代码

//异步GET请求
function getGirlInfoByGet(vueThisObj) 
    var vueThis = vueThisObj;
    $.ajax(
        type: 'GET',
        url: 'http://127.0.0.1:8082/getGirlInfo',
        data: 
            name: 'ZhangHz'
        ,
        success: function (result) 
            vueThis.girlInfo = result;
        
    );

//异步POST请求
function getGirlInfoByPost(vueThisObj) 
    var vueThis = vueThisObj;
    $.ajax(
        type: 'POST',
        url: 'http://127.0.0.1:8082/getGirlInfoPost',
        data: 
            name: 'ZhangBj',
            height: 162
        ,
        success: function (result) 
            vueThis.girlInfoPost = result;
        
    );

3.4对应Vue代码

var vm = new Vue(
    el: '#app',
    data: 
        girlInfo: ,
        girlInfoPost: ,
    ,
    methods: 
        getGirlInfo: function () 
            getGirlInfoByGet(this);
        ,
        getGirlInfoPost: function () 
            getGirlInfoByPost(this);
        
    
);

3.5后端代码

app.get('/getGirlInfo', (req, res) => 

  var girlInfo = 
    id: 1,
    name: 'ZhangHz',
    height: '161',
    weight: '51',
    cup: 'B'
  ;
  if (req.query.name != 'ZhangHz') 
    girlInfo='请核对后,再查询.';
  ;
  res.send(girlInfo);
);
app.post('/getGirlInfoPost', (req, res) => 

  var girlInfo = 
    id: 1,
    name: 'ZhangBj',
    height: '162',
    weight: '52',
    cup: 'C'
  ;
  if (req.body.name != 'ZhangBj') 
    girlInfo='请核对后,再查询.';
  ;
  res.send(girlInfo);
);

3.6效果

运行效果如下:

4.体验Promise

Promise 对象用于表示一个异步操作的最终完成 (或失败)及其结果值。

4.1HTML标签

<div id="app">
<div class="grid">
  <div><strong>体验前后端交互-Promise</strong></div>
  <div class="titlePad" style="color: blue;">1. Promise的GET请求</div>
  <div class="buttonPad"><button @click='getGirlInfo'>点击</button></div>
  <div>
      <table>
          <thead>
              <tr>
                  <th>姓名</th>
                  <th>身高</th>
                  <th>体重</th>
                  <th>罩杯</th>
              </tr>
          </thead>
          <tbody>
              <tr>
                  <td>girlInfo.name</td>
                  <td>girlInfo.height</td>
                  <td>girlInfo.weight </td>
                  <td>girlInfo.cup </td>
              </tr>
          </tbody>
      </table>
  </div>

  <div class="titlePad" style="color: blue;">2.Promise的POST请求</div>
  <div class="buttonPad"><button @click='getGirlInfoPost'>点击</button></div>
  <div>
      <table>
          <thead>
              <tr>
                  <th>姓名</th>
                  <th>身高</th>
                  <th>体重</th>
                  <th>罩杯</th>
              </tr>
          </thead>
          <tbody>
              <tr>
                  <td>girlInfoPost.name</td>
                  <td>girlInfoPost.height</td>
                  <td>girlInfoPost.weight </td>
                  <td>girlInfoPost.cup </td>
              </tr>
          </tbody>
      </table>
  </div>
</div>
</div>

4.2css代码

<style type="text/css">
.grid 
    margin: auto;
    width: 520px;
    text-align: center;


.grid table 
    border-top: 1px solid #f7b62a;
    width: 100%;
    border-collapse: collapse;


.grid th,
td 
    padding: 10;
    border: 1px solid #f7b62a;
    height: 35px;
    line-height: 35px;


.grid th 
    background-color: #f7b62a;


.titlePad 
    margin-top: 5px;
    margin-bottom: 5px;


.buttonPad 
    margin-bottom: 5px;

</style>

4.3js代码

//异步GET请求
function getGirlInfoByGet() 
    var promise = new Promise(function (resolve, reject) 
        var xhr = new XMLHttpRequest();
        xhr.open("GET", "http://127.0.0.1:8082/getGirlInfo?name=ZhangHz");
        xhr.send();
        xhr.onreadystatechange = function () 
            if (xhr.readyState == 4 && xhr.status == 200) 
                resolve(xhr.responseText);
             else 
            
        ;
    );
    return promise;

//异步POST请求
function getGirlInfoByPost() 
    var promise = new Promise(function (resolve, reject) 
        var xhr = new XMLHttpRequest();
        xhr.open("POST", "http://127.0.0.1:8082/getGirlInfoPost");
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
        xhr.send("name=ZhangBj&height=162");
        xhr.onreadystatechange = function () 
            if (xhr.readyState == 4 && xhr.status == 200) 
                resolve(xhr.responseText);
             else 

            
        ;
    );
    return promise;

4.4对应Vue代码

var vm = new Vue(
    el: '#app',
    data: 
        girlInfo: ,
        girlInfoPost: ,
    ,
    methods: 
        getGirlInfo: function () 
            var vueThis = this;
            getGirlInfoByGet().then(function (data) 
                vueThis.girlInfo = JSON.parse(data);
            , function (info) 
                console.log("服务异常.");
            );
        ,
        getGirlInfoPost: function () 
            var vueThis = this;
            getGirlInfoByPost().then(function (data) 
                vueThis.girlInfoPost = JSON.parse(data);
            , function (info) 
                console.log("服务异常.");
            );
        
    
);

4.5后端代码

app.get('/getGirlInfo', (req, res) => 

  var girlInfo = 
    id: 1,
    name: 'ZhangHz',
    height: '161',
    weight: '51',
    cup: 'B'
  ;
  if (req.query.name != 'ZhangHz') 
    girlInfo='请核对后,再查询.';
  ;
  res.send(girlInfo);
);
app.post('/getGirlInfoPost', (req, res) => 

  var girlInfo = 
    id: 1,
    name: 'ZhangBj',
    height: '162',
    weight: '52',
    cup: 'C'
  ;
  if (req.body.name != 'ZhangBj') 
    girlInfo='请核对后,再查询.';
  ;
  res.send(girlInfo);
);

4.6效果

运行效果如下:

5.体验fetch

Fetch API提供了一个JavaScript接口,用于访问和操纵HTTP管道的请求和响应等。

5.1HTML标签

<div id="app">
<div class="grid">
  <div><strong>体验前后端交互-fetch</strong></div>
  <div class="titlePad" style="color: blue;">1.fetch的GET请求</div>
  <div class="buttonPad"><button @click='getGirlInfo'>点击</button></div>
  <div>
      <table>
          <thead>
              <tr>
                  <th>姓名</th>
                  <th>身高</th>
                  <th>体重</th>
                  <th>罩杯</th>
              </tr>
          </thead>
          <tbody>
              <tr>
                  <td>girlInfo.name</td>
                  <td>girlInfo.height</td>
                  <td>girlInfo.weight </td>
                  <td>girlInfo.cup </td>
              </tr>
          </tbody>
      </table>
  </div>

  <div class="titlePad" style="color: blue;">2.fetch的POST请求</div>
  <div class="buttonPad"><button @click='getGirlInfoPost'>点击</button></div>
  <div>
      <table>
          <thead>
              <tr>
                  <th>姓名</th>
                  <th>身高</th>
                  <th>体重</th>
                  <th>罩杯</th>
              </tr>
          </thead>
          <tbody>
              <tr>
                  <td>girlInfoPost.name</td>
                  <td>girlInfoPost.height</td>
                  <td>girlInfoPost.weight </td>
                  <td>girlInfoPost.cup </td>
              </tr>
          </tbody>
      </table>
  </div>
</div>
</div>

5.2css代码

<style type="text/css">
.grid 
    margin: auto;
    width: 520px;
    text-align: center;


.grid table 
    border-top: 1px solid #f7b62a;
    width: 100%;
    border-collapse: collapse;


.grid th,
td 
    padding: 10;
    border: 1px solid #f7b62a;
    height: 35px;
    line-height: 35px;


.grid th 
    background-color: #f7b62a;


.titlePad 
    margin-top: 5px;
    margin-bottom: 5px;


.buttonPad 
    margin-bottom: 5px;

</style>

5.3js代码

//异步GET请求
function getGirlInfoByGet(vueThisObj) 
    var vueThis = vueThisObj;
    fetch('http://127.0.0.1:8082/getGirlInfo?name=ZhangHz', 
        method: 'get'
    ).then(function (data) 
        return data.text();
    ).then(function (data) 
        vueThis.girlInfo = JSON.parse(data);
    );

异步POST请求
function getGirlInfoByPost(vueThisObj) 
    var vueThis = vueThisObj;
    fetch('http://127.0.0.1:8082/getGirlInfoPost', 
        method: 'POST',
        body: JSON.stringify(
            name: 'ZhangBj',
            height: '162'
        ),
        headers: 
            'Content-Type': 'application/json'
        
    ).then(function (data) 
        return data.text();
    ).then(function (data) 
        vueThis.girlInfoPost = JSON.parse(data);
    );

5.4对应Vue代码

var vm = new Vue(
    el: '#app',
    data: 
        girlInfo: ,
        girlInfoPost: ,
    ,
    methods: 
        getGirlInfo: function () 
            getGirlInfoByGet(this);
        ,
        getGirlInfoPost: function () 
            getGirlInfoByPost(this);
        
    
);

5.5后端代码

app.get('/getGirlInfo', (req, res) => 

  var girlInfo = 
    id: 1,
    name: 'ZhangHz',
    height: '161',
    weight: '51',
    cup: 'B'
  ;
  if (req.query.name != 'ZhangHz') 
    girlInfo='请核对后,再查询.';
  ;
  res.send(girlInfo);
);
app.post('/getGirlInfoPost', (req, res) => 

  var girlInfo = 
    id: 1,
    name: 'ZhangBj',
    height: '162',
    weight: '52',
    cup: 'C'
  ;
  if (req.body.name != 'ZhangBj') 
    girlInfo='请核对后,再查询.';
  ;
  res.send(girlInfo);
);

5.6效果

运行效果如下:

6.体验axios

axios是一个易用、简洁且高效的http库。

6.1HTML标签

<div id="app">
<div class="grid">
    <div><strong>体验前后端交互-axios</strong></div>
    <div class="titlePad" style="color: blue;">1.axios的GET请求</div>
    <div class="buttonPad"><button @click='getGirlInfo'>点击</button></div>
    <div>
        <table>
            <thead>
                <tr>
                    <th>姓名</th>
                    <th>身高</th>
                    <th>体重</th>
                    <th>罩杯</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>girlInfo.name</td>
                    <td>girlInfo.height</td>
                    <td>girlInfo.weight </td>
                    <td>girlInfo.cup </td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="titlePad" style="color: blue;">2.axios的POST请求</div>
    <div class="buttonPad"><button @click='getGirlInfoPost'>点击</button></div>
    <div>
        <table>
            <thead>
                <tr>
                    <th>姓名</th>
                    <th>身高</th>
                    <th>体重</th>
                    <th>罩杯</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>girlInfoPost.name</td>
                    <td>girlInfoPost.height</td>
                    <td>girlInfoPost.weight </td>
                    <td>girlInfoPost.cup </td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="titlePad" style="color: blue;">3.axios的GET请求-async和await关键字</div>
    <div class="buttonPad"><button @click='getGirlInfoV1'>点击</button></div>
    <div>
        <table>
            <thead>
                <tr>
                    <th>姓名</th>
                    <th>身高</th>
                    <th>体重</th>
                    <th>罩杯</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>girlInfoV1.name</td>
                    <td>girlInfoV1.height</td>
                    <td>girlInfoV1.weight </td>
                    <td>girlInfoV1.cup </td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="titlePad" style="color: blue;">4.axios的POST请求-async和await关键字</div>
    <div class="buttonPad"><button @click='getGirlInfoPostV1'>点击</button></div>
    <div>
        <table>
            <thead>
                <tr>
                    <th>姓名</th>
                    <th>身高</th>
                    <th>体重</th>
                    <th>罩杯</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>girlInfoPostV1.name</td>
                    <td>girlInfoPostV1.height</td>
                    <td>girlInfoPostV1.weight </td>
                    <td>girlInfoPostV1.cup </td>
                </tr>
            </tbody>
        </table>
    </div>

</div>
</div>

6.2css代码

<style type="text/css">
.grid 
    margin: auto;
    width: 520px;
    text-align: center;


.grid table 
    border-top: 1px solid #f7b62a;
    width: 100%;
    border-collapse: collapse;


.grid th,
td 
    padding: 10;
    border: 1px solid #f7b62a;
    height: 35px;
    line-height: 35px;


.grid th 
    background-color: #f7b62a;


.titlePad 
    margin-top: 5px;
    margin-bottom: 5px;


.buttonPad 
    margin-bottom: 5px;

</style>

6.3js代码

//异步GET请求
function getGirlInfoByGet(vueThisObj) 
    var vueThis = vueThisObj;
    axios.get('http://127.0.0.1:8082/getGirlInfo', 
        params: 
            name: 'ZhangHz'
        
    ).then(function (result) 
        vueThis.girlInfo = result.data;
    )

异步POST请求
function getGirlInfoByPost(vueThisObj) 
    var vueThis = vueThisObj;
    axios.post('http://127.0.0.1:8082/getGirlInfoPost', 
        name: 'ZhangBj',
        height: 162
    ).then(function (result) 
        vueThis.girlInfoPost = result.data;
    );

6.4对应Vue代码

var vm = new Vue(
el: '#app',
data: 
    girlInfo: ,
    girlInfoPost: ,
    girlInfoV1: ,
    girlInfoPostV1: ,
,
methods: 
    getGirlInfo: function () 
        getGirlInfoByGet(this);
    ,
    getGirlInfoPost: function () 
        getGirlInfoByPost(this);
    ,
    getGirlInfoV1: async function () 
        axios.defaults.baseURL = 'http://127.0.0.1:8082/';
        var ret = await axios.get('getGirlInfo?name=ZhangHz');
        this.girlInfoV1 = ret.data;
    ,
    getGirlInfoPostV1: async function () 
        axios.defaults.baseURL = 'http://127.0.0.1:8082/';
        var ret = await axios.post('getGirlInfoPost', 
            name: 'ZhangBj',
            height: 162
        );
        this.girlInfoPostV1 = ret.data;
    

);

6.5后端代码

app.get('/getGirlInfo', (req, res) => 

  var girlInfo = 
    id: 1,
    name: 'ZhangHz',
    height: '161',
    weight: '51',
    cup: 'B'
  ;
  if (req.query.name != 'ZhangHz') 
    girlInfo='请核对后,再查询.';
  ;
  res.send(girlInfo);
);
app.post('/getGirlInfoPost', (req, res) => 

  var girlInfo = 
    id: 1,
    name: 'ZhangBj',
    height: '162',
    weight: '52',
    cup: 'C'
  ;
  if (req.body.name != 'ZhangBj') 
    girlInfo='请核对后,再查询.';
  ;
  res.send(girlInfo);
);

6.6效果

运行效果如下:

 以上,感谢。

2021年9月28日

vue-resource的使用,前后端数据交互(代码片段)

vue-resource的使用,前后端数据交互1:导入vue与vue-resource的js js下载:  https://pan.baidu.com/s/1fs5QaNwcl2AMEyp_kUgFyQ 注意如果是springBoot项目需要在配置文件中排除静态文件的拦截:   post方法:newVue(el:"#app", 查看详情

前后端交互(小白教学)(代码片段)

在我们的印象中什么是前后端交互呢?我们一个后端程序员为什么要去学习前端知识?前后端交互到底是靠什么而进行关联的呢?接下来我们带着这三个问题来阅读这边文章!!!1.前后端交互所谓前后端交互,即前后端交互为前端和后端... 查看详情

初识vue——最简单的前后端交互示例(代码片段)

一、初识vue时的困惑最近想学一门前端技术防身,看到博客园中写vue的多,那就vue吧。都说vue的官方教程写得好,所以我就从官方教程开始学习。官方教程说“Vue(读音/vju?/,类似于view)是一套用于构建用户界面的渐进式框架。与... 查看详情

前后端分离之使用axios进行前后端交互实现评论显示——django+mysql+vue+element(代码片段)

Axios进行前后端交互一.修改vue存在的文件路径二.解决跨域问题三.渲染数据到前端四.完整代码jshtml教学视频:5.axios请求后台——评论功能6.解决跨域问题cors——评论功能7.前端界面显示——评论功能前言:作者:神的... 查看详情

前后端交互流程(代码片段)

1.前后端交互:前后端交互,也可以理解为数据交互。前端需要获取(GET)的数据获取上传(POST)的数据,要通过请求来完成的,前端发送请求,后端接收到请求后,便进行对数据库的操作,... 查看详情

vue之前后端交互(代码片段)

Vue之前后端交互一、前后端交互模式接口调用方式原生ajax基于jQuery的ajaxfetchaxios异步JavaScript的执行环境是「单线程」所谓单线程,是指JS引擎中负责解释和执行JavaScript代码的线程只有一个,也就是一次只能完成一项任务,这个... 查看详情

axios前后端交互工具学习(代码片段)

文章目录Axios前后端交互工具学习引言引入Axios介绍GET请求的方式then方法catch方法POST请求的方式PUT请求的方式Axios的基本配置Axios的拦截器Vue怎么和Axios配合呢?Axios前后端交互工具学习引言  Axios是一个异步请求技术,... 查看详情

axios前后端交互工具学习(代码片段)

文章目录Axios前后端交互工具学习引言引入Axios介绍GET请求的方式then方法catch方法POST请求的方式PUT请求的方式Axios的基本配置Axios的拦截器Vue怎么和Axios配合呢?Axios前后端交互工具学习引言  Axios是一个异步请求技术,... 查看详情

vue前后端交互(代码片段)

异步调用异步效果:事件函数Ajax定时任务多次异步调用依赖多次调用异步,结果顺序不确定,如果需要固定顺序,必须使用嵌套Promise概述Promise是异步编程的一种解决方案,从语法上讲Promise是一个对象,从它可以获取到异步操作的消息;... 查看详情

ajax前后端交互利器详解(代码片段)

✍Ajax前后端交互利器🔥Ajax前后端交互利器地址🔥Ajax前后端交互利器详解(一)https://blog.csdn.net/Augenstern_QXL/article/details/120116296🔥Ajax前后端交互利器详解(二)https://blog.csdn.net/Augenstern_QXL/article/details/1 查看详情

ajax前后端交互利器详解(代码片段)

✍Ajax前后端交互利器🔥Ajax前后端交互利器地址🔥Ajax前后端交互利器详解(一)https://blog.csdn.net/Augenstern_QXL/article/details/120116296🔥Ajax前后端交互利器详解(二)https://blog.csdn.net/Augenstern_QXL/article/details/1 查看详情

一.vue+django前后端数据交互知识点(代码片段)

一. Vue+Django基础项目知识点1.vue+django跨域的问题解决https://www.cnblogs.com/lovershowtime/p/11572569.html 跨域知识点在后台解决跨域问题使用中间件作用全局cors.pyclassMiddlewareMixin(object):def__init__(self,get_response=None):self.get_response=get_resp... 查看详情

vue前后台交互,插件(代码片段)

目录Vuex插件前端存储数据汇总前后台交互方式(重点)axios插件同源策略-跨域问题前后台分离项目交互流程异步请求细节Element-ui插件jQ+Bs插件Django国际化配置总结Vuex插件Vuex插件可以完成任意组件间信息交互(移动端)了解vuex... 查看详情

前后端交互(代码片段)

前端传JSON 此JSON有上下级关系每一个有孩子节点此节点有数据"standardspeciallistid":"10339","standardcostid":"0","costcode":"(A)","costcodelevel":"1","costcodename":"开发成本","costcodeparentid":"0","haschild":"","budgetvaria 查看详情

推荐系统-task04前后端基础及交互(代码片段)

项目流程: 交互基本流程  本项目的前端采用基于vue框架的VantUI组件库,完成用户注册页、用户退出页、用户热门列表页、用户推荐列表页、新闻详情页等功能;后端采用Flask框架,使用MySQL、MongoDB和Redis作为... 查看详情

聊聊前后端分离的接口规范(代码片段)

....前言随着互联网的高速发展,前端页面的展示、交互体验越来越灵活、炫丽,响应体验也要求越来越高,后端服务的高并发、高可用、高性能、高扩展等特性的要求也愈加苛刻,从而 查看详情

前后端交互模式(代码片段)

一、原生Ajax1.1ajax概述Ajax即“AsynchronousJavascriptAndXML”(异步JavaScript和XML),是一种用于客户端与服务端进行数据交互的一种技术。Ajax能够创建交互式、快速动态网页应用,无需重新加载整个网页的情况下,能够更新部分网页。... 查看详情

vue简单快速入门(代码片段)

...用可以结合Restful,符合前后端分离开发。​良好的用户体验:应用没有页面跳转,全是局部刷新,整体页面更流畅。​减轻服务器端压力:由于都是局部刷新对服务器压力更小。​多平台共享:无论是移动端、电脑端都可以共... 查看详情