js-AJAX

AJAX

AJAX即“Asynchronous Javascript And XML”(异步的JavaScript和XML),是指一种创建交互式网页应用的网页开发技术,用于浏览器和服务器之间进行数据交互。AJAX在浏览器与Web服务器之间使用异步数据传输(HTTP请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。AJAX描述了一种主要使用脚本操作HTTP的Web应用架构,AJAX应用的主要特点是使用脚本操纵HTTP和Web服务器进行数据交换,不会导致页面重载。

谈谈Ajax

  • AJAX是异步的JavaScript和XML;

  • AJAX是一种用于创建更好更快以及交互性更强的Web应用程序的技术;

  • AJAX是一种独立于Web服务器软件的浏览器技术;

  • AJAX不是一种新的编程语言,而是一种技术;

  • AJAX 使用 JavaScript 在 web 浏览器与 web 服务器之间来发送和接收数据(前端后台交互);

  • AJAX在浏览器与Web服务器之间使用异步数据传输(HTTP请求)。

XMLHttpRequest

XMLHttpRequest对象是AJAX的基础,XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。目前所有浏览器都支持XMLHttpRequest。

实现步骤:
1.创建XMLHTTPRequest对象
var xhr = new XMLHttpRequest();
2.使用open方法设置和服务器的交互信息open()
xhr.open('请求方法',url)
//请求方法取值:GET/POST/HEAD/DELETE/OPTIONS/PUT 
3.设置requestHeader()
//语法
xhr.setRequestHeader(属性名称, 属性值);
//常用的数据格式(编码可带可不带)

1. 发送纯文本(不指定Content-type时,此是默认值)
xhr.setRequestHeader('Content-type', 'text/plain; charset=utf-8');

2.发送json格式数据
xhr.setRequestHeader('Content-type', 'application/json; charset=utf-8');

3.发送表单数据
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=utf-8');
    
4.发送html文本
xhr.setRequestHeader('Content-type', 'text/html; charset=utf-8');
4.设置发送的数据,开始和服务器端交互 send()
请求主体内容,如果没有,为null,或者省略。
xhr.send(); //调用send()之后,请求就会发送到服务器
5.取得响应,注册事件
  • responseText:作为响应体返回的文本。
  • status:响应的 HTTP 状态。
  • readyState:返回HTTP请求状态 4代表响应完成
  • readystatechange 请求状态改变事件
6.如果请求完成,并且响完成,可以获取到响应数据
7.响应解码

常用get请求使用

1.get无参请求
<script>
    // 1.创建XMLHttpRequest对象
	var xhr=new XMLHttpRequest()
    // 2.使用open方法设置和服务器的交互信息    
	xhr.open('get','http://47.93.206.13:8002/index/findAllCategory')
    // 3.如果默认可不设置requestHeader
    // 4.发送请求
	xhr.send()
    // 5.取得响应
	xhr.onreadystatechange=function(){
        //6. 如果请求完成,并且响应完成
		if(xhr.readyState===4&&xhr.status===200){
            //7.,获取到响应数据
			console.log(xhr.responseText);
		}
	}
</script>
2.get有参请求
// 参数序列化 引入QS序列化工具
<script src="https://cdn.bootcdn.net/ajax/libs/qs/6.10.1/qs.js"></script>
<script>
        var qs=Qs;
        var xhr=new XMLHttpRequest();
        var obj={
            page:1,
            pageSize:10
        }
        // 转换为字符串
        // console.log(qs.stringify(obj));
        xhr.open('get','http://47.93.206.13:8002/index/pageQueryArticles'+'?'+qs.stringify(obj))
        xhr.send()
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4 && xhr.status === 200) {
                console.log(xhr.responseText);
            }
        }
</script>
3.post有参请求
<script>
        var xhr = new XMLHttpRequest();
        xhr.open('post', 'http://47.93.206.13:8002/user/login');
        var obj={
            username:'admin1',
            password:123321
        }
        // 设置请求头
        xhr.setRequestHeader('Content-Type','application/json')
        xhr.setRequestHeader('Authorization','token') 
        // 将对象转换为json格式
        xhr.send(JSON.stringify(obj));
        xhr.onreadystatechange=function(){
            if(xhr.readyState===4&&xhr.status===200){
                console.log(xhr.responseText);
            }
        }
</script>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值