http之发送Ajax 请求

AJAX(1):原生AJAX,HTTP协议,Ajax环境配置,AJAX发送请求,AJAX请求中的问题 AJAX全程为Asynchronous Javascript And XML,异步的js和XML通过AJAX 可以在浏览器中向服务器发送异步请求,最大的优势:无刷新获取数据。AJAX 不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式。 阅读详情

发送Ajax 以为这可以进行异步操作;
这样会使执行的效率会更高

Ajax 的概念
在浏览器中,我们可以在不刷新页面的情况下,通过ajax的方式去获取一些新的内容。

Ajax:Asynchronous Javascript And XML(异步 JavaScript 和 XML)。它并不是凭空出现的新技术,而是对于现有技术的结合。
Ajax 的核心是 js 对象:XMLHttpRequest。


发送 Ajax 请求的五个步骤
其实也就是 使用 XMLHttpRequest 对象的五个步骤。

我们先回忆一下,一个完整的HTTP请求需要的是:

请求的网址、请求方法get/post。

提交请求的内容数据、请求主体等。

接收响应回来的内容。

发送 Ajax 请求的五个步骤:

(1)创建异步对象。即 XMLHttpRequest 对象。

(2)使用open方法设置请求的参数。open(method, url, async)。
参数解释:请求的方法、请求的url、是否异步。

(3)发送请求。

(4)注册事件。 注册onreadystatechange事件,状态改变时就会调用。

如果要在数据完整请求回来的时候才调用,我们需要手动写一些判断的逻辑。

(5)获取返回的数据。


对于原生js的来说,如何发送Ajax请求呢?

  • get 请求;
<script type="text/javascript">
    // 绑定点击事件
    document.querySelector('#btnAjax').onclick = function () {
        // 发送ajax 请求 需要 五步

        // (1)创建异步对象
        var ajaxObj = new XMLHttpRequest();

        // (2)设置请求的参数。包括:请求的方法、请求的url。
        ajaxObj.open('get', '02-ajax.php');

        // (3)发送请求
        ajaxObj.send();

        //(4)注册事件。 onreadystatechange事件,状态改变时就会调用。
        //如果要在数据完整请求回来的时候才调用,我们需要手动写一些判断的逻辑。
        ajaxObj.onreadystatechange = function () {
            // 为了保证 数据 完整返回,我们一般会判断 两个值
            if (ajaxObj.readyState == 4 && ajaxObj.status == 200) {
                // 如果能够进到这个判断 说明 数据 完美的回来了,并且请求的页面是存在的
                
                // 5.在注册的事件中 获取 返回的 内容 并修改页面的显示
                console.log('数据返回成功');

                // 数据是保存在 异步对象的 属性中
                console.log(ajaxObj.responseText);

                // 修改页面的显示
                document.querySelector('h1').innerHTML = ajaxObj.responseText;
            }
        }
    }
</script>
  • post 请求;
    这里多了一步, 需要设置 Content-type:
<script type="text/javascript">

    // 异步对象
    var xhr = new XMLHttpRequest();

    // 设置属性
    xhr.open('post', '02.post.php');

    // 如果想要使用post提交数据,必须添加此行
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    // 将数据通过send方法传递
    xhr.send('name=fox&age=18');

    // 发送并接受返回值
    xhr.onreadystatechange = function () {
        // 这步为判断服务器是否正确响应
        if (xhr.readyState == 4 && xhr.status == 200) {
            alert(xhr.responseText);
        }
    };
</script>

将这两者封装

后面引入这个js文件就可以使用了

// 方法:将 get 跟post 封装到一起
/*
	参数1:url
	参数2:数据
	参数3:请求的方法
	参数4:数据成功获取以后,调用的方法
*/
function ajax_tool(url,data,method,success) {
	// 异步对象
	var ajax = new XMLHttpRequest();

	// get 跟post  需要分别写不同的代码
	if (method=='get') {
		// get请求
		if (data) {
			// 如果有值
			url+='?';
			url+=data;
		}else{

		}
		// 设置 方法 以及 url
		ajax.open(method,url);

		// send即可
		ajax.send();
	}else{
		// post请求
		// post请求 url 是不需要改变
		ajax.open(method,url);

		// 需要设置请求报文
		ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");

		// 判断data send发送数据
		if (data) {
			// 如果有值 从send发送
			ajax.send(data);
		}else{
			// 木有值 直接发送即可
			ajax.send();
		}
	}

	// 注册事件
	ajax.onreadystatechange = function () {
		// 在事件中 获取数据 并修改界面显示
		if (ajax.readyState==4&&ajax.status==200) {
			// console.log(ajax.responseText);

			// 将 数据 让 外面可以使用
			// return ajax.responseText;

			// 当 onreadystatechange 调用时 说明 数据回来了
			// ajax.responseText;

			// 数据成功获取以后,执行方法success()。
			//我们把获取的数据作为 success()的参数,意思是:
			//success方法是外面的,数据是里面给的。那数据就变相地传递到了外面去【重要】
			success(ajax.responseText);
		}
	}

}

使用jQuery 发送Ajax请求

这里的话,就没有post 与 get 之分了, 直接在type 类型中修改就可以了

$.ajax({
				url:"data.php",
				dataType:"text",
				type:"get",
				success:function(data){
					alert(data);
					//$("#showInfo").html(data);
				},
				error:function(e){
					console.log(e);
				}
			});

  $.ajax({
        type: "GET",
        url: "localhost:8080/travle/news/list",
        data: { page: $("#page").val(), limit: 5 },
        dataType: "JSON",
        success: function(result) {}
      });

这里的dataType设置为jsonp 就可以就行跨域操作了(但是只能发送get请求)


Vue 中发送Ajax请求
这是需要使用axios ,官方的vue-resouce ,这里不推荐使用,因为官方也不管了

通过 引用axios后, 可以直接
axios.get()/post()

axios.get('/api/ajax/detailmovie',{
  params:{
      movieId:341
  }
})
  .then(res=>{
      if(res.status===200){
          return res.data
      }else{
          return 'error'
      }
  })  
  .then(data=>{
      console.log(data)
  })

如果跨域的话,还要配置相关的信息才能使用;
需要在vue.config.js 中

 devServer:{
        proxy:{
            // 代理的
            'api/':{
                target:'http://xxx.xxx.xxx/',
                changeOrigin:true,
                // pathRewrite:{
                //     '/api':''
                // }
            }
        }

    }

在这里插入图片描述
在这里插入图片描述

深入解析线性反馈移位寄存器(LFSR)的工作原理与实现 本文深入解析了线性反馈移位寄存器(LFSR)的核心原理与实现方法。通过生动的比喻和详细的步骤拆解,阐述了LFSR如何通过反馈多项式和移位操作生成伪随机序列,并对比了斐波那契型与伽罗瓦型两种硬件结构。文章还涵盖了LFSR在数字电路测试、通信扰码及快速伪随机数生成等关键应用场景,同时指出了其在密码学中的局限性,并提供了Python和C语言的高效实现代码示例。 阅读详情

相关推荐

告别TwinCAT:手把手教你用IgH EtherCAT Master在LinuxCNC上搭建实时运动控制平台

本文详细介绍了如何利用IgH EtherCAT Master和LinuxCNC搭建开源实时运动控制平台,替代商业软件TwinCAT。通过分步指南,包括实时Linux环境配置、EtherCAT主站安装、LinuxCNC集成及多轴同步控制实现,帮助开发者构建高性能、低成本的工业自动化解决方案。

weixin_42641741的博客 401

HTTP/Ajax

该篇文章笔记记录了JavaScript原生请求以及Ajax请求,对于请求的格式,HTTP协议,请求,响应,以及传参都有对应的讲解。

weixin_53137201的博客 788

基于STM32控制直流电机加减速正反转仿真设计

*单片机设计介绍,基于STM32控制直流电机加减速正反转仿真设计。

2201_75940997的博客 1603

AJAX发送http请求、接收响应:教程带示例(全文精华)

本文介绍了AJAX的请求和响应的用法,并带有实例解析,适合快速入门AJAX,并提供服务器响应状态码表

Yushiba972的博客 3427

手把手教你解决Keil5安装时xerces-c_3_0.dll缺失和0xc000007b报错(附文件下载与路径设置)

本文详细解析了Keil5安装过程中常见的xerces-c_3_0.dll缺失和0xc000007b报错问题,提供了从文件获取、路径设置到系统配置的完整解决方案。同时,文章还涵盖了STM32开发环境的搭建技巧和最佳实践,帮助开发者快速构建稳定的嵌入式开发环境。

weixin_29164497的博客 600

手把手教你学simulink(40.1)--水力发电场景示例:基于 Simulink 的抽水蓄能电站水力发电

项目背景抽水蓄能电站是一种重要的储能技术,广泛应用于电力系统的调峰填谷、频率调节和备用电源。它通过在电力负荷低谷时将水从下水库抽到上水库储存,在电力负荷高峰时释放水进行发电,从而实现电能的高效利用。与传统的水电站不同,抽水蓄能电站可以在短时间内快速响应电网的需求,具有良好的灵活性和可靠性。本项目旨在使用 MATLAB/Simulink 模拟一个完整的抽水蓄能电站的水力发电过程,包括水泵-涡轮机系统、发电机、水道系统、控制系统等,并实现对电站的精确控制,确保其在不同工况下都能稳定运行。

MHD0815的博客 886

前后端交互学习笔记(四):ajax及http

前后端交互学习笔记(四):ajax及http

憬淮的博客 875

【异常检测】新版异常检测库anomalib的使用

异常检测库anomalib的使用。

胡侃有料的博客 4390

http ajax请求

简介 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 AJAX = 异步 JavaScript 和 XML。 AJAX 是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 应用场景: 当我们在百度中输入一个“传”字后,会马上出现一个下拉列表!列表中显示的是包含“传”字的10个关键字。 有很多使用 AJAX 的应用程序案例:新浪微博、Google 地图、开心网、

lipeiwen1998的博客 678

Python经典编程习题100例:第32例:相反顺序输出列表

不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 本人初学Python,只为熟悉语法编写,大神请勿理会 点击下面链接 Python经典编程100例习题汇总 题目描述: 按相反的顺序输出列表的值。 解题思路: > 利用reverse函数逆序 代码: arr=['f','g','e','b'] print(arr) arr.reverse() print(arr) ...

优快云 精品推荐 1416

YOLOv8-Pose 姿态识别 RK3588 实战:从模型训练到 RKNN 部署,精度与推理速度双提升

本教程从YOLOv8-pose模型的姿态识别训练,到RK3588的边缘量化部署,为你打造了一套“高精度+高实时性+低成本”的人体姿态分析解决方案。无论是健身动作纠正、智能安防行为检测,还是工业人员姿态监控,这套技术都能直接复用——你只需替换数据集与业务逻辑,即可快速落地专属的边缘AI姿态识别系统。如果你在实践中遇到任何卡点,欢迎随时交流。记住,人体姿态识别的价值在于“关键点准、推理快、部署易”,而这三者的平衡,正是你通过本教程能掌握的核心能力。

FJN110的博客 364

从宿舍网到校园网:手把手用Packet Tracer模拟真实网络隔离策略(VLAN+三层交换)

本文详细介绍了如何使用Cisco Packet Tracer模拟校园网络中的VLAN隔离策略,通过三层交换技术实现宿舍区、办公区、教学区和服务器区的精细化访问控制。文章包含从网络设计到配置实战的完整指南,特别适合计算机网络实验和网络组建的学习者。

weixin_30697239的博客 570

YOLOv8 模型进化全解析:百种创新模块集成方法与实战部署指南(附资料链接)

动态网络 | DeformableConv/DynamicHead| +2.8% || 轻量化卷积 | GhostConv/MobileConv | +1.2% || 多尺度融合 | AFPN/ASFF | +3.5% || 注意力机制 | CA/EMA/SimAM | +1.8-4.2% |

FJN110的博客 111

【Ajax】发送http请求

本文笔记基于「千古壹号」的GitHub项目:https://github.com/qianguyihao/web 非商业用途自由转载,保持署名,注明出处! 文章目录1.基础 1.基础 作用之一:在浏览器中,可以在不刷新的情况下,通过Ajax的方式获取一些新内容! Ajax:Asynchronous Javascript And XML(异步JS和 XML),是对现有技术的结合。 核心对象:js...

微子细的博客 614

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

使用Ajax发送http请求(get&post请求)

使用Ajax发送http请求(get&post请求) 同步和异步的概念: 同步:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 异步:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。 1.同步:必须等待前面的任务完成,才能继续后面的任务。 2.异步:不受当前任务的影响。 流程比较:普通B/S模式(同步)AJAX技术(异步) 同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事 异步: 请求通过事件触发->服务器处

weubiwube的博客 690

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

AJAX(一)HTTP协议(请求响应报文),AJAX发送请求,请求问题处理

原生AJAX发送Get,Post请求。响应JSON数据的两种方式。如何捕获AJAX请求超时与网络异常的清空。abort函数取消请求。解决请求重复发送的问题

lxh的博客 2062

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

AJAX(一):初识AJAX、http协议、配置环境、发送AJAX请求、请求时的问题

AJAX 全称为Asynchronous Javascript And XML。就是异步的JS和XML。通过AJAX 可以在浏览器中向服务器发送异步请求,最大的优势:无刷新获取数据。AJAX 不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式。...

weixin_42044763的博客 2107

用angular请求ajax,使用Angular2的Http发送AJAX请求

使用Angular2的Http发送AJAX请求Angular的文档并不详细,甚至API文档也有一些错误。通过查阅资料并经大量实验,终于明确了Angular的Http发送Ajax请求的方式方法。本文描述了经过Angular的Http发送Ajax请求相关的所有内容。json1. Angular的Http类Angular的Http类负责与服务端通信,经过Ajax的形式访问远程服务器。跨域Angular的...

weixin_29864831的博客 995

Ajax学习笔记(一):原生AJAX、HTTP协议、AJAX案例准备工作、发送AJAX请求、AJAX 请求状态

AJAX 全称为 Asynchronous JavaScript And XML,就是异步的 JS 和 XML。通过 AJAX 可以在浏览器中向服务器发送异步请求,最大的优势:无刷新获取数据。AJAX 不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式比如百度搜索框:搜索abcd,下面出现的提示框就是用到Ajax,提示框中的信息不是自动生成的,而是向服务器发送请求,数据从服务器返回。注册页面:当我们输入一个用户名,不可以时,会提示此用户名太受欢迎,请更换一个,也是运用了Ajax。

weixin_62764364的博客 1127

ajax发送几次请求,Http请求通过AJAX发送2次(Http request is sending 2 times through AJAX)

Http请求通过AJAX发送2次(Http request is sending 2 times through AJAX)我的AJAX代码如下:data = new FormData();// data="";paths = "";// Create a new HTTP requests, Form data item (data we will send to the server) an...

weixin_34065550的博客 379

java 实现ajax发送http请求,直接访问服务器

//-----------------------------客户端请求时需要把中文转码 -----------------------------------------     /**       * 向指定URL发送POST方法的请求       * @param url 发送请求的URL       * @return URL所代表远程资源的响应       */

Sid的专栏 1万+

C# 中 发送HTTP请求 实现Ajax功能

Ajax技术的核心及其在jQuery中的使用,包括GET和POST请求的实现,以及Ajax轮询请求的工作原理。通过实例展示了如何使用jQuery.Ajax进行HTTP请求,与后端接口交互,以及处理JSON数据。同时还提到了跨域问题和轮询请求中停止条件的设定。在C#中,确实存在多个可用于发送HTTP请求的NuGet包。这些包提供了丰富的功能,使得在C#应用程序中发起HTTP请求变得简单且高效。

weixin_43542114的博客 782

JS发送Http请求——AJAX

1.AJAX的引入 JS 缺乏 主动发起 Http请求的能力,因此需要代码片段让JS发起Http请求,我们称这样的代码片段为——AJAX(Asynchronous JAvaScript by Xml ) AJAX借助 JS 中的一个内置对象:XMLHttpRequest,可简写为xhr 2.AJAX的代码片段 ...

alcohol_sun的博客 7626

java模拟发送ajax请求,Java实现发送HTTP的POST请求,返回数据以及请求状态

/*** @param url:请求url* @param content: 请求体(参数)* @return errorStr:错误信息;status:状态码,response:返回数据*/public Map request(String url, String content) {Map result = new HashMap();String errorStr = "";String s...

weixin_29337389的博客 1677

一个Https网站发送Http的 ajax请求的解决方法

但是在https网站内发送http的ajax请求报错 可以看到是在https://127.0.0.1 请求http://kafka1:8080/api/hello便失败。并且报错Mixed Content: The page at ‘https://127.0.0.1/’ was loaded over HTTPS, but requested an insecure XMLHttpReques...

weixin_34211761的博客 2226

AJAX-发送HTTP请求

AJAX-发送HTTP请求 let xhr if (window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else { xhr = new ActiveXObject('Microsoft.XMLHTTP') // IE5,IE6生效 } console.log(xhr.readyState ) // 0 xhr.open('GET', 'URL',true) //方法 url 是否异步 // onreadystatchange 事件,挂载到XML

relax_go的博客 290
上一篇: vue 的事件修饰符(v-on, v-model)
下一篇: JS基础回顾总结(更新中...>>>)for,for in, for of,数据结构(堆与栈)
ZH_TX
博客等级 码龄8年 15粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值