前端调用接口

article/2025/11/5 2:06:59

调用接口

  • jquery的ajax
    • 使用方法
    • 案例调用的接口
    • get请求
    • post请求
    • 在接口中调用接口
  • fetch
    • 案例调用的接口
    • 案例
  • axios
    • 使用方法
  • vue-resource

jquery的ajax

该方法是 jQuery 底层 AJAX 实现。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下无需直接操作该函数,除非需要操作不常用的选项,以获得更多的灵活性。

最简单的情况下,$.ajax() 可以不带任何参数直接使用。

使用方法

使用jquery的ajax需要引入jquery
模板:

$.ajax({//调用的接口url:' ',//请求的类型type:' ',//传输的数据data:{},//请求成功后运行的函数success:(data)=>{console.log(data);}})

案例调用的接口

app.get('/async1', (req, res) => {res.send('hello1')
})
app.get('/books', (req, res) => {res.send('传统的URL传递参数!' + req.query.id)
})
app.get('/books/:id', (req, res) => {res.send('Restful形式的URL传递参数!' + req.params.id)
})
app.post('/books', (req, res) => {res.send('POST请求传递参数!' + req.body.uname + '---' + req.body.pwd)
})

get请求

get请求不需要传递数据,可以不写data

//请求get端口
$.ajax({url:'http://localhost:3000/async1',type:'get',success:(data)=>{console.log(data);}})//静态地址传值$.ajax({url:'http://localhost:3000/books?id=123',type:'get',success:(data)=>{console.log(data);}})// 动态地址传值$.ajax({url:'http://localhost:3000/books/123',type:'get',success:(data)=>{console.log(data);}})

在这里插入图片描述

post请求

$.ajax({url:'http://localhost:3000/books',type:'post',data:{uname:'张三',pwd:123},success:(data)=>{console.log(data);}})

在这里插入图片描述

在接口中调用接口

在上面get请求的例子中,我们按顺序调用了接口,但在浏览器的输出中我们可以看到它并没有按照我们写代码的顺序去执行。这是因为ajax是异步执行的。
在项目中我们可能遇到在接口中调用接口的情况,即在调用接口返回成功后继续调用另一个接口,这样的话就需要通过以下方式来实现接口的嵌套调用

$.ajax({url:'http://localhost:3000/async1',type:'get',success:(data)=>{console.log(data);$.ajax({url:'http://localhost:3000/books?id=123',type:'get',success:(data)=>{console.log(data);$.ajax({url:'http://localhost:3000/books/123',type:'get',success:(data)=>{console.log(data);}})}})}})

在这里插入图片描述
这样我们就可以按照写的顺序来调用接口

fetch

Fetch api 是最新的ajax解决方案 Fetch会返回Promise
fetch不是ajax的进一步封装,而是原生js ,没有使用XMLHttpRequest对象

语法格式: fetch(url,options).then()

第一个参数为请求的接口,而第二个接口可选,用于传递数据(如请求方式,要传的值)

案例调用的接口

app.get('/fdata', (req, res) => {res.send('Hello Fetch!')
})
app.post('/books', (req, res) => {res.send('POST请求传递参数!' + req.body.uname + '---' + req.body.pwd)
})

案例

   fetch('http://localhost:3000/fdata').then(function(data){// data是调用接口后的响应报文头信息console.log(data);// text() 方法属于fetch api的一个方法, 它返回一个promise实例对象  用于获取后台返回的数据return data.text()//后一个then使用前一个then的封装结果}).then(function(data){// 在这个then中 才可以获取到最终的数据console.log(data);})

在这里插入图片描述

		// 通过URLSearchParams 传递参数var params=new URLSearchParams();params.append('uname','zhangsan');params.append('pwd','123')fetch('http://localhost:3000/books',{//这个里面放传递方式及传递的数据和一些设置(比如请求头)method:'post',//数据位置要与请求方式对应body:params}).then(function(data){return data.text()}).then(function(data){console.log(data);})

在这里插入图片描述

axios

基于promise用于浏览器和nodejs的http客户端
支持浏览器和nodejs
支持promise
能拦截请求和响应
自动转换json数据
能转换请求和响应数据

使用方法

需要安装或直接script引用

<script>axios//调用接口.get('http://localhost:3000/axios?id=123')//获取服务器返回数据.then((data)=>{console.log(data);})
</script> 

在这里插入图片描述
可以看到返回值存放在data中,要调用的话就在返回值的data中找

vue-resource

Vue 要实现异步加载需要使用到 vue-resource 库。因此使用vue-resource调用接口不仅需要引入vue还要引入 vue-resource 库

<script>new Vue({el:'#app',methods: {btn(){this.$http.get('http://localhost:3000/books?id=123').then((data=>{console.log(data);}))},btn1(){this.$http.post('http://localhost:3000/books',{uname:'tom',pwd:456},{emulateJSON:true}).then((data)=>{console.log(data);})}},})</script>

在这里插入图片描述
可以看到不论是post还是get请求,返回的值都在body中


http://chatgpt.dhexx.cn/article/YKu6B7g2.shtml

相关文章

vue调用接口

目录 简单获取和追加数据铺页面 用 post 给接口传值 post 用 url 问号拼接数据 简单获取和追加数据铺页面 一、在api中新建该页面的js文件用于存放该页面的所有接口 二、引用所需组件&#xff0c;调用接口&#xff08;已经全局配置了接口地址&#xff09; import axios fr…

接口调用方法详解

接口调用方法详解 基础知识 接口定义: 接口是一组已命名的方法签名。所以接口里可以定义方法、属性、事件,因为这些本质上都是方法。但是,接口不能定义任何的构造函数。 接口的可访问性: 类本身的修饰符可以为public,internal等(VS2008里试过)。但是显示实现接口方…

如何优雅的调用接口?

目录 一、背景 二、分析 三、编码 InterfaceDescriptor ServiceProviderInterface ServiceProviderInterfaceClient ServiceProviderInterfaceClientImpl 四、测试 SendSmsRequest SendSmsResult SendSmsProvider TestController 五、总结 一、背景 一般我们的项…

软件测试 (7) web项目测试

前言 之前说了APP项目的测试&#xff0c;今天来总结一下web项目的测试&#xff0c;其实大多数过程是差不多类似的。对比平常移动端手机的高频率使用来说&#xff0c;对于部分人使用pc端浏览器的概率就不会这么高&#xff0c;讲APP项目测试的时候没怎么涉及到网络协议部分的介绍…

项目流程_软件测试

软件测试属性 1.按测试阶段划分 单元测试&#xff1a;单元测试是对软件基本组成单元进行的测试&#xff0c;是为了尽早发现错误(错误发现越早,成本越低&#xff0c;发现问题比较容易&#xff0c;修正问题更容易)&#xff0c;单个的软件单元或者一组相关的软件单元所进行的测试&…

[SpringBoot系列]项目测试

文章目录 加载测试专用属性加载测试专用配置Web环境模拟测试数据层测试回滚测试用例数据设定 加载测试专用属性 测试是保障程序正确性的唯一屏障&#xff0c;在企业级开发中更是不可缺少。 测试过程本身并不是一个复杂的过程&#xff0c;但是很多情况下测试时需要模拟一些线上情…

如何找软件测试的项目

10年测试经验分享&#xff1a;新手怎么找软件测试的项目&#xff1f;_程序员二黑的博客-CSDN博客_软件测试项目去哪里找测试新手不知道上哪找测试项目&#xff0c;这应该是每个测试自学人的困扰。https://erhei.blog.csdn.net/article/details/119416292?spm1001.2014.3001.55…

IT项目管理之软件测试

1. 定义 软件测试是使用人工或者自动的手段来运行或者测定某个软件系统的过程&#xff0c;其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 在软件投入使用前&#xff0c;要经过一系列的严格测试&#xff0c;才能保证交付质量。 2. QC & QA &a…

软件项目测试的具体内容

功能测试&#xff1a; 对指定业务所有功能进行测试&#xff0c;撰写测试用例&#xff0c;执行测试用例&#xff0c;出具测试报告和BUG列表&#xff0c;专用BUG管理工具进行测试管理。 根据产品特性、操作描述和用户方案&#xff0c;测试一个产品的特性和可操作行为以确定它们…

Linux下轻量级数据库-SQLite3(嵌入式设备)

一、概念 数据库是用来存储和管理数据的专用软件&#xff0c;使得管理数据更加安全&#xff0c;方便和高效。数据库对数据的管理的基本单位是表(table)。 二、常见的数据库 大型数据库(大型机) —————- Oracle(亿级) 中型数据库(分布式超大型) ———— mysql(百万级) 轻…

二、MySQL

MySQL是一个小型关系数据库管理系统。与其他大型数据库管理系统 &#xff08;例如Oracle、DB2、SQL Server 等&#xff09;相比&#xff0c;MySQL规模小、功能有限&#xff0c;但是它体积小、速度快、成本低&#xff0c;并且提供的功能对稍微复杂的应用来说已经够用&#xff0c…

数据库——多种方法导入Excel数据

文章目录 一、SQL Server导入Excel数据二、小技巧导入Excel数据三、使用Microsoft.ACE.OLEDB导入Excel数据四、手动添加一行数据五、手动添加多行数据五、解决类型不匹配致导入失败 一、SQL Server导入Excel数据 接下来就一直点击NEXT&#xff0c;直到完成 此时EXCEL的数据就被…

MySQL数据库简介

MySQL数据库简介 MySQL数据库是一种关系型数据库管理系统&#xff0c;是一种开源软件由瑞典MySQL AB公司开发&#xff0c;08年1月16日被Sun公司收购&#xff0c;09年Sun公司又被Oracle公司收购。 由于其体积小、速度快、总体拥有成本低&#xff0c;尤其是开放源码这一特点&a…

Linux中的小型数据库 SQLite3

数据库&#xff08;SQLite&#xff09; 数据库后缀 .db&#xff08;data base) gcc时加 -lsqlite3 这些是小希归纳的SQLite的一些重要语句&#xff0c;与示例应用 如果想要进一步学习&#xff0c;大家可以去网上搜 SQLite3的书籍

在JSTL 中使用小型数据库 SQLite

文章目录 一、Sqlite 数据库命令行工具的下载下载地址&#xff1a; 二、Sqlite 数据库 shell 工具的使用方法1.创建数据库2.Sqlite 数据库中表的创建&#xff1a;3.表中数据的插入4.Sqlite 数据库命令行的退出 三、ER图转化为数据库3.1建表3.2 向表中插入数据3.3 输出数据库中相…

实现一个小型数据库--记一次中级软件设计实作浮沉历程

说在前头&#xff1a;本篇文章主要是记录这次项目的过程&#xff0c;不全是贴代码&#xff0c;具体的程序移步这里&#xff0c;不喜欢的同学请轻喷。 事件起因&#xff1a;大三狗一枚&#xff0c;专业是软件应用。这学期的中级软件设计实作题目是实现一个小型的数据库&#xf…

用xml充当小型数据库案例

利用dom4j工具&#xff0c;将user.xml作为一个小型的数据库&#xff0c;然后控制台输入进行用户名与密码的匹配 /*user.xml文件放在src下*/ <?xml version"1.0" encoding"utf-8"?> <users><user id"001" name"ecri" …

数据库上机3(小型数据库应用程序开发)

注&#xff1a; ①各上机报告均根据《数据库技术与应用》课程的上机任务所做。 ②课程教材为 《数据库系统概论&#xff08;第五版&#xff09;》/王珊, 萨师煊编著/北京:高等教育出版社,2014 上机要求&#xff1a; 1、自学上层应用访问数据库的方式&#xff08;如ODBC、ADO、…

【SQL数据库设计】数据库设计【小型数据库】

数据库设计 需求 表结构字段类型、是否允许为null、是否有默认值索引设计数据库引擎的选择 根据产品原型分析&#xff0c;词性分析法&#xff0c;名词创建表或字段&#xff0c;动词表示关系。 数据存储&#xff1a;长期存储的数据&#xff0c; 1.主键&#xff1a;唯一、自增。 …

小型数据库系统开发作业

文章目录 题目数据库设计UI界面开发展示 原文链接&#xff1a;https://zhanghan.xyz/posts/60088/ 题目 自学上层应用访问数据库的方式&#xff08;如ODBC、ADO、JDBC、MySQLi或者其它&#xff09;&#xff0c;根据您使用的上层语言&#xff08;不限语言&#xff08;但要求与自…