前后端交互Ajax

这篇具有很好参考价值的文章主要介绍了前后端交互Ajax。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Ajax

1 服务器的基本概念

1.1 服务器

上网过程中,负责存放和对外提供资源的电脑,叫做服务器。

上网的过程中,负责获取和消费资源的电脑,叫做客户端。

1.2 URL 地址

URL(全称是UniformResourceLocator)中文叫做统一资源定位符,用于表示互联网上每个资源的唯一存放位置。浏览器只有通过URL地址,才能正确定位资源存放位置,从而成功访问到对应的资源。

URL地址一般由三部分组成:

① 客户端与服务器之间的通信协议(http/https)

② 存有资源的服务器名称

③ 资源在服务器上具体的存放位置

1.3 资源的请求方法

客户端请求服务器时,请求的方式由很多种,最常见的两种请求方式分别为getpost请求。

  • get请求通常用于获取服务器资源(向服务器要资源)
  • post请求通常用于向服务器提交数据(往服务器发送资源)

2 了解Ajax

Ajax的全称是 Asynchronous JavaScript And XML (异步JavaScript和XML)

通俗的理解就是:在网页中利用 XMLHttpRequest 对象和服务器进行数据交互的方式,就是Ajax

3 接口及接口文档

使用Ajax 请求数据时, 被请求的URL地址, 就叫做数据接口(简称接口)。同时,每个接口必须有请求方式

接口文档,顾名思义就是对 接口的说明文档它是我们调用接口的依据。接口文档包含了对接口URL参数以及输出内容的说明,我们参照接口文档就能方便的知道接口的作用,以及接口如何进行调用。

4 XMLHttpRequest的基本使用

XMLHttpRequest(简称 xhr) 是浏览器提供的JavaScript 对象,通过它,可以请求服务器上的数据资源

请求方法:

GET POST 备注
GET请求偏向于查询(获取数据…) POST请求偏向于提交数据(注册,修改,删除…) 从语义去区分GET和POST
GET显示的携带参数,参数是直接拼接在请求地址之后,安全性较差,隐私性差 POST隐式的携带参数,不会在请求地址上进行显示,安全性好。 POST请求都是以JSON格式进行传参
GET 的请求数据长度有大小限制,根据浏览器的不同,限制在2k~8K POST请求没有限制
GET请求可以被缓存 POST请求不会被缓存

xhr 对象的readyState 属性

0 请求未初始化
1 服务器连接已建立
2 请求已接收
3 请求处理中
4 请求已完成,且响应已就绪

4.1 使用xhr发起get请求

步骤:

  • 创建 xhr 对象
  • 调用 xhr.open() 函数
  • 调用 xhr.send() 函数
  • 监听 xhr.onreadystatechange 事件
// 不带参数的GET请求
        // 1. 创建一个XMLHttpRequest对象
        var xhr = new XMLHttpRequest();
        // 2. 调用open函数
        // 不带参数的GET请求
        // xhr.open("GET", "http://www.liulongbin.top:3006/api/getbooks");
        // 带参数的GET请求
        xhr.open("GET", "http://www.liulongbin.top:3006/api/getbooks?id=1");
        // 3. 调用send函数
        xhr.send();
        // 4. 监听onreadystatechange 事件
        xhr.onreadystatechange = function() {
            // readyState 表示当前ajax请求所处的状态
            if (xhr.readyState === 4 && xhr.status === 200) {
                console.log(xhr.responseText);
            }
        }

4.2 使用 xhr 发起 POST请求

步骤:

  • 创建 xhr 对象
  • 调用 xhr.open() 函数
  • 设置 Content-Type 属性(固定写法)
  • 调用 xhr.send() 函数,同时指定要发送的数据
  • 监听 xhr.onreadystateChange 事件
		// 1. 创建 xhr 对象
        var xhr = new XMLHttpRequest();
        // 2. 调用 open 函数
        xhr.open("POST", "http://www.liulongbin.top:3006/api/addbook");
        // 3. 设置 Content-Type 属性
        xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
        // 4. 调用 send 函数
        xhr.send("bookname=水浒传转&author=施耐庵呀&publisher=上海图书出版社么");
        // 5. 监听事件
        xhr.onreadystatechange = function() {
            if (xhr.readyState === 4 && xhr.status === 200) {
                console.log(xhr.responseText);
            }
        }

4.3 查询字符串

查询字符串(URL参数)是指在URL的末尾加上用于向服务器发送信息的字符串(变量)。

格式:将英文的 ? 放在URL的末尾,在加上参数 = 值,多个参数的话,使用 & 符号进行分割

5 使用 Axios 发起请求

Axios 是专注于网络数据请求的库。

引入:

<script src="https://unpkg.com/axios/dist/axios.min.js"/></script>

5.1 使用Axios发起GET请求

axios 发起 get 请求的语法:

axios.get("url", {params: { /* 参数 */ }}.then(callback))

注意: Axios会返回promise对象 ,因此需要then来处理

axios.get('http://81.70.153.180:8081/api/getStudentList', {params:{sid:'s0001',sname:'王'}}).then(res => {
    console.log('res',res);
});
axios.get('http://81.70.153.180:8081/api/getStudentList?sid=s0001&sname=王').then(res => {
	console.log('res',res);
});
axios({
    url: 'http://81.70.153.180:8081/api/getStudentList',
    method: 'GET',
    params: { // GET方式,传递参数使用params
        sid: 's0001',
        sname: '王',
    }
}).then(res => {
    console.log('res', res); // res.data
});

5.2 使用Axios发起POST请求

axios 发起 POST 请求的语法:

axios.post("url", { /* 参数 */ }.then(callback))

axios.post('http://81.70.153.180:8081/api/login', {
                sid: 's0001',
                password: "123456"
             }).then(res => {
             console.log(res);
         });
axios({
	url: 'http://81.70.153.180:8081/api/login', // 请求的地址
    method: 'POST',
    headers: { 'Content-Type': 'application/json;charset=utf-8' }, // 设置请求头
    data: {  
    	sid: 's0001',
		password: "123456"
    }
}).then(res => {
    console.log(res); // res.data
});

6 使用fetch发起请求

fetch也是前端用于发起网络请求的比较好的主流方式,ajax请求主要包括两种XML和fetch,XML可能接触的比较多。但是fetch不是ajax的进一步封装,而是原生js,没有使用XMLHttpRequest对象。

6.1 使用 fetch 发起get请求

fetch('http://81.70.153.180:8081/api/getStudentList?sid=s0001&sname=王').then(res => {
 	if (res.ok) {
		return res.json();
    }
}).then(data => {
	console.log(data);
});

备注:get请求使用rest方式传参, 参数做为地址栏中的一部分文章来源地址https://www.toymoban.com/news/detail-468330.html

6.2 使用 fetch 发起post请求

fetch('http://81.70.153.180:8081/api/login', {
	method: 'post',
    body: JSON.stringify({  // 进行传参,需要转换为json字符串
		sid: 's0001',
		password: "123456"
	}),
	headers: {
		'Content-Type': 'application/json'
    }
}).then(res => {
	if (res.ok) {
		return res.json();
	}
}).then(data => {
		console.log(data);
	});

到了这里,关于前后端交互Ajax的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前后端交互Ajax

    1.1 服务器 上网过程中,负责 存放和对外提供资源 的电脑,叫做服务器。 上网的过程中,负责 获取和消费资源 的电脑,叫做客户端。 1.2 URL 地址 URL(全称是UniformResourceLocator)中文叫做 统一资源定位符 ,用于表示互联网上每个资源的唯一存放位置。浏览器只有通过URL地址

    2024年02月07日
    浏览(47)
  • 前后端交互——Ajax

    Ajax 即“AsynchronousJavascriptAndXML”(异步 JavaScript 和 XML) ,是指 一种创建交互式应用的网页开发技术 。通俗的理解就是在网页中利用XMLHttpRequest对象和服务器进行数据交互的方式。 传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。其缺点如下: 1. 本身是

    2023年04月10日
    浏览(34)
  • Ajax(实现前后端交互效果)

    Ajax学习目标: 能够知道和服务器相关的基本概念;知道客户端和服务器通信的过程;什么是Ajax以及应用场景,知道接口和接口文档的概念。 1.客户端和服务器概念: 上网的本质目的:通过互联网的形式来获取和消费资源; 服务器:上网过程中,负责存放和对外提供资源的

    2024年02月05日
    浏览(51)
  • 使用ajax向服务器发起post请求(提交数据给服务器)

     一、jQuery中发起Ajax请求的三种方法:        功能 简介:         1、$get():功能单一,专门用来发起get请求,从而将服务器上的资源“请求”到客户端来进行使用。         2、$post():功能单一,专门用来发起post请求,从而向服务器“提交”数据。         3、$ajax():是

    2024年02月12日
    浏览(46)
  • django Ajax--前后端数据交互

    Django的Ajax和JavaScript的Ajax实质上是指同一种技术,即异步JavaScript和XML(Asynchronous JavaScript and XML)。它允许在不刷新整个页面的情况下,通过前后端之间的异步交互来获取或发送数据。 区别在于角色和层次: Django的Ajax: Django的Ajax通常是指在Django框架中使用Ajax技术的方式。

    2024年02月14日
    浏览(47)
  • ajax 如何从服务器上获取数据?

    在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种常用的技术,用于在不重新加载整个页面的情况下,从服务器获取数据并更新网页的某一部分。使用AJAX,你可以创建异步请求,从而提供更快的响应和更好的用户体验。 要使用AJAX从服务器获取数据,你需要执行以下步骤:

    2024年02月21日
    浏览(35)
  • 使用ajax进行前后端交互的方法

    使用ajax进行前后端交互的方法:(我只测试通了json对象作为参数的方式,其他方式我没有测试通过) 1、前端方法: 传参方式:POST 请求类型:json对象 响应类型:json对象 2、后端方法:无需创建一个类来接收前端传来的json字符串,需要注意是:使用的接收参数必须与前端定

    2024年02月14日
    浏览(45)
  • 第10章 Web服务器与Ajax

    学习目标 熟悉Web基础知识,能够说出Web服务器、URL和HTTP的概念 熟悉什么是Node.js,能够说出Node.js的作用 掌握Node.js的下载和安装,能够独立完成Node.js的下载和安装 熟悉什么是Express,能够说出Express的作用 掌握Express的安装,能够使用node命令完成Express的安装 掌握如何使用Ex

    2024年01月19日
    浏览(36)
  • 服务器前后端学习理解

    想做一个最简单的网页,点击按钮后,访问服务器的redis数据库,读取一个为hello的值并显示 首先用js写了一个脚本,使用redis包,读取到了数据,并使用consol.log进行显示 随后,使用live server,在vscode中,运行了html文件,可以在网页中打开页面,显示一个段落文本和按钮 然而

    2024年02月10日
    浏览(34)
  • 前后端服务器分离时,前端如何上传图片到前端服务器?

    当前后端服务器分离时,前端上传图片到前端服务器可以采用以下几种方式: 1. 直接上传到前端服务器:可以通过使用HTML的`input type=\\\"file\\\"`元素,让用户选择图片文件并直接上传到前端服务器。前端服务器可以使用后端提供的API接口处理上传请求,然后将图片保存到前端服务

    2024年04月27日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包