Ajax学习笔记

一、AJAX原理

1.创建XMLHttpRequest/ActiveObject对象

2.注册回调参数

3.配置请求参数

4.发送请求

5.创建回调

1.1 、XMLHttpRequest对象

用于在后台与服务器交换数据

1.2、XMLHttpRequest的几种状态

0.对象没有完成初始化

1.对象开始发送请求

2.对象请求发送完成

3.对象开始读取服务器响应

4.对象读取服务器响应结束

二、AJAX的js实现

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>ajax js 的实现</title>
</head>
<body>
    <p>ajax js 的实现</p>
	<script>
		// 1. 创建XMLHttpRequest对象
		var xmlhttp = null;
		if (window.XMLHttpRequest) {
			xmlhttp = new XMLHttpRequest();
		} else if(window.ActiveXObject) {
			xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
		} else {
			alert('浏览器不支持')
		}
		// 2. 注册回调函数
		if (xmlhttp !== null) {
			xmlhttp.onreadystatechange = callback;
		}

		// 3. 配置请求参数
		var url = 'http://127.0.0.1:5000/ajax/js'
		// 4. 发送请求
		xmlhttp.open('POST', url, true);
		// 发送请求
		xmlhttp.send(null); 


        // 5. 回调处理
		function callback() {
			if(xmlhttp.readyState === 4) {
				// http状态码
				console.log(xmlhttp.status)
			}
		}

		// 跨域错误  同源策略:协议 地址 端口

	</script>
</body>
</html>

三、AJAX的jquery实现

.ajax函数参数

  • url----请求地址
  • method ---- 请求类型
  • data ---- 请求参数
  • dataType ---- 返回的数据类型(xml/html/json等)
  • headers  ----  请求头信息
  • success ---  请求成功后的回调
  • error  ----  发生错误后的回调(状态码补位2XX)
  • complete --- 请求完成后的回调
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script src="/static/js/jquery-3.4.1.min.js"></script>
</head>
<body>
  <p>jquery 中使用 ajax</p>
  <a href="javascript:;">点击提交</a>
  <script>
    $(document).ready(function() {
        $('a').click(function () {
          $.ajax({
            //请求地址
            url: 'http://127.0.0.1:5000/ajax/js',
            //请求类型
            method: 'GET',
            //请求参数
            data: {
                username: 'zhangsan',
                password: '123123'
            },
              /**
            success: function (res) {
              console.log(res)
              alert('成功了')
            },
            error: function () {
                alert('出错了')
            },
               **/
              complete: function() {
                alert('请求完成了')
              }
          })
        })
    })
  </script>
</body>
</html>
from flask import Flask, render_template, request

app = Flask(__name__)


@app.route('/ajax')
def index():
    return render_template('ajaxjs.html')


@app.route('/ajax/js', methods=['GET', 'POST'])
def ajax_js():
    print(request.values)
    return 'js ajax', 200


@app.route('/ajax/jq')
def ajax_jq():
    return  render_template('ajaxjq.html')

四、AJAX快捷函数

  • .post ---  post请求
  • .get()  ----  get请求
  • .getJSON()  ---  get请求json数据

4.1 AJAX全局设置

ajaxSetup()全局设置使用场景

1.请求响应拦截,如:http状态码为401跳转到登录界面

2.添加全局参数,如:error:function(event,statusText){}

3. 添加请求头信息

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>ajax 快捷函数的使用</title>
  <script src="/static/js/jquery-3.4.1.min.js"></script>
</head>
<body>
  <p>ajax 快捷函数的使用</p>
  <a href="javascript:;">点击提交</a>
  <script>
    $(function () {
      $.ajaxSetup({
          headers: {
              'appfrom': 'h5'
          },
          error: function (event) {
            console.log(event.status);
            if(event.status === 401) {
                alert('请登录')
            } else {
               alert('发生了错误')
            }
          }
      })
      $('a').click(function () {
        // $.post('http://127.0.0.1:5000/ajax/js', {
        // $.get('http://127.0.0.1:5000/ajax/js', {
        $.getJSON('http://127.0.0.1:5000/ajax/js', {
            'username': 'zhangsan',
            'password': '123123'
        }, function (res) {
          res = JSON.parse(res)
          console.log(res);
          console.log(res.username);
          alert('请求成功')
        })
      })
    })
  </script>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于学习Ajax,我可以为您提供一些学习笔记。以下是一份简要的Ajax学习笔记,希望对您有所帮助: 1. 什么是Ajax? - Ajax全称为Asynchronous JavaScript and XML(异步JavaScript和XML),是一种用于创建交互式Web应用程序的技术。 - 它通过在后台与服务器进行数据交换,实现在不刷新整个页面的情况下更新部分页面内容。 2. Ajax的优点: - 异步处理:可以在后台发送和接收数据,而无需刷新整个页面。 - 提高用户体验:通过部分更新页面内容,可以提供更快的响应时间和更流畅的用户体验。 - 减轻服务器负担:只更新需要的部分内容,减少了不必要的数据传输和服务器负载。 3. Ajax的基本原理: - 使用XMLHttpRequest对象向服务器发送请求,并接收响应。 - 通过JavaScript在前端处理响应数据。 - 更新页面内容,以显示最新的数据。 4. Ajax的核心技术: - XMLHttpRequest对象:用于与服务器进行数据交换。 - JavaScript:用于处理响应数据和更新页面内容。 - XML或JSON:用于传输数据格式。 5. Ajax的使用步骤: - 创建XMLHttpRequest对象。 - 定义请求类型、URL和是否异步。 - 发送请求并接收响应。 - 处理响应数据并更新页面内容。 6. 常见的Ajax框架和库: - jQuery:一个流行的JavaScript库,提供了简化Ajax开发的方法和函数。 - Axios:一个基于Promise的HTTP客户端,用于浏览器和Node.js。 - Fetch API:一种用于发送和接收网络请求的新标准。 这只是Ajax学习的一些基本概念和步骤,您可以进一步深入学习Ajax的相关知识和实践。希望这些笔记对您有所帮助!如有更多问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值