zoukankan      html  css  js  c++  java
  • Vue 前后端交互 (Fetch)

    须知少年凌云志,曾许人间第一流

    Fetch

    • Fetch API是新的ajax解决方案 Fetch会返回Promise
    • fetch不是ajax的进一步封装,而是原生js,没有使用XMLHttpRequest对象
    • fetch(url, options).then(), 第一个参数请求的路径 Fetch会返回Promise ,使用then 拿到请求成功的结果

    text() 方法使用

    text() 方法属于fetchAPI的一部分,它返回一个Promise实例对象,用于获取后台返回的数据

      <script type="text/javascript">
        fetch('http://localhost:3000/fdata').then(function(data){
          return data.text();
        }).then(function(data){
          //   在这个then里面我们能拿到最终的数据  
          console.log(data);
        })
      </script>
    

    fetch 请求参数

    GET DELETE 形式

    其中 GET 请求方式 又可以分为 传统URL和Restful 格式

     <script type="text/javascript">
    
           #1.1 GET参数传递 - 传统URL  通过url  ? 的形式传参 
            fetch('http://localhost:3000/books?id=123', {
                	# get 请求可以省略不写 默认的是GET 
                    method: 'get'
                })
                .then(function(data) {
                	# 它返回一个Promise实例对象,用于获取后台返回的数据
                    return data.text();
                }).then(function(data) {
                	# 在这个then里面我们能拿到最终的数据  
                    console.log(data)
                });
    
          #1.2  GET参数传递  restful形式的URL  通过/ 的形式传递参数  即  id = 456 和id后台的配置有关   
            fetch('http://localhost:3000/books/456', {
                	# get 请求可以省略不写 默认的是GET 
                    method: 'get'
                })
                .then(function(data) {
                    return data.text();
                }).then(function(data) {
                    console.log(data)
                });
    
           #2.1  DELETE请求方式参数传递      删除id  是  id=789
            fetch('http://localhost:3000/books/789', {
                    method: 'delete'
                })
                .then(function(data) {
                    return data.text();
                }).then(function(data) {
                    console.log(data)
                });
    
         
    

    index.js 后台接口
    在这里插入图片描述

    POST PUT 形式

    与前者区别需要额外设置 body (数据格式)headers (请求头)

    注意: POST 请求 传递的格式 分为 常规JSON

    支持JSON 的原因 如下:

    在这里插入图片描述

      #3 POST请求传参
            fetch('http://localhost:3000/books', {
                    method: 'post',
                	# 3.1  传递数据 
                    body: 'uname=lisi&pwd=123',
                	#  3.2  设置请求头 
                    headers: {
                        'Content-Type': 'application/x-www-form-urlencoded'
                    }
                })
                .then(function(data) {
                    return data.text();
                }).then(function(data) {
                    console.log(data)
                });
    
           # POST请求传参
            fetch('http://localhost:3000/books', {
                    method: 'post',
                    body: JSON.stringify({
                        uname: '张三',
                        pwd: '456'
                    }),
                    headers: {
                        'Content-Type': 'application/json'
                    }
                })
                .then(function(data) {
                    return data.text();
                }).then(function(data) {
                    console.log(data)
                });
    
            # PUT请求传参     修改id 是 123 的 
            fetch('http://localhost:3000/books/123', {
                    method: 'put',
                    body: JSON.stringify({
                        uname: '张三',
                        pwd: '789'
                    }),
                    headers: {
                        'Content-Type': 'application/json'
                    }
                })
                .then(function(data) {
                    return data.text();
                }).then(function(data) {
                    console.log(data)
                });
        </script>
    

    index.js 后台
    在这里插入图片描述

    序列化与反序列化

    JSON.parse()

    作用:将JavaScript对象表示法的JSON字符串转换为对象(字符串转对象)

    JSON.stringify()

    作用:将 JavaScript json对象转换为JavaScript对象表示法的JSON字符串(对象转为字符串)

    Fetch 响应结果

    • text() 将返回体处理成字符串类型
    • json() 返回结果和JSON.parse(responseText) 一样

    用fetch来获取数据,如果响应正常返回,我们首先看到的是一个response对象,其中包括返回的一堆原始字节,这些字节需要在收到后,需要我们通过调用方法将其转换为相应格式的数据,比如JSONBLOB或者TEXT等等

     fetch('http://localhost:3000/json').then(function(data){
          // return data.json();   //  将获取到的数据使用 json 转换对象
          return data.text(); //  //  将获取到的数据 转换成字符串 
        }).then(function(data){
          // console.log(data.uname)
          // console.log(typeof data)
          var obj = JSON.parse(data);
          console.log(obj.uname,obj.age,obj.gender)
        })
    
    
  • 相关阅读:
    大batch任务对structured streaming任务影响
    spark 集群优化
    linux神器 strace解析
    打个 hadoop RPC的栗子
    netty 入门
    c#硬件对接数值转换
    RabbitMQ 消息队列入门
    RabbitMQ 开发环境安装部署
    Nginx-4.Nginx如何处理请求
    Nginx-3.控制nginx
  • 原文地址:https://www.cnblogs.com/lzhCreate/p/14377318.html
Copyright © 2011-2022 走看看