ajax

作者: GHope | 来源:发表于2018-08-27 19:43 被阅读54次

ajax是什么?
Asynchronous Javascript And XML
上网怎么上的?
客户端:浏览器,前端(html、css、js、jquery)
服务端:现成的,比如百度、csdn等,后端(php、java、python)
有网
上网就是客户端向服务端发送请求,然后获取到服务端数据的过程
你是通过url的切换实现的,url就是网址,来得到不同的内容
ajax:在不刷新整个页面的前提下,完成了和服务端的交互,也就更新了网页里面的内容,一般都是局部更新
应用:nba直播,文字直播,用户注册,不更新页面加载下一页数据
ajax怎么使用?
(1)原生js实现
(2)jquery封装好的函数的用法

'content-type', 'application/x-www-form-urlencoded'
setRequestHeader
onreadystatechange
    readyState
    status
    responseText

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ajax实现</title>
</head>
<body>
    
</body>
</html>
<script>
// 原生的js实现ajax的技术
// 创建对象,
// XMLHttpRequest是高级浏览器创建ajax对象的方式
// IE8以下的创建方式不一样,只需了解即可
var xhr = new XMLHttpRequest()
// 和后端进行交互,交互的方式有两种,pc端:get、post  移动端:get、post、put、delete等
// 发送get请求 
// 参数1:请求方式
// 参数2:处理这个请求的文件,或者url
// 这样就将请求发送过去了
// xhr.open('get', 'url')
// xhr.send()

// post方式如何发送
xhr.open('post', 'url')
// 发送post,必须要添加这个东西
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
// 在发送send的时候,需要将要传递的参数写进来
xhr.send('name=狗蛋&password=123')

// 服务端返回数据给你,要使用下面的代码
// ajax在发送请求的时候,状态会改变,会触发这个事件
xhr.onreadystatechange = function () {
    // 4是固定的,代表的意思是请求发送成功
    if (xhr.readyState == 4) {
        // 当响应也成功的时候,就可以获取数据了,去判断响应状态码  404
        if (xhr.status == 200) {
            // 获取响应的内容
            var content = xhr.responseText
            // 响应内容一般都是json格式的字符串
            // 你的工作就是解析json字符串,将内容填充到html中
            // 首先将json格式字符串转化为js对象
            var obj = JSON.parse(content)
            // var obj = eval('(' + content + ')')
        }
    }
}
</script>

交互

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>和服务端交互</title>
</head>
<body>
    用户名:<input type="text" name="user" id="user">
    <br>
    会员等级:<input type="text" name="level" id="level">
    <br>
    会员余额:<input type="text" name="money" id="money">
    <br>
    会员年限:<input type="text" name="year" id="year">
    <br>
    <button id="btn">点我获取内容</button>
</body>
</html>
<script>
// 获取按钮
var obtn = document.getElementById('btn')
// 找到每一个input
var ouser = document.getElementById('user')
var olevel = document.getElementById('level')
var omoney = document.getElementById('money')
var oyear = document.getElementById('year')
// 添加点击事件
obtn.onclick = function () {
    // 和服务端交互, 创建ajax对象来交互
    var xhr = new XMLHttpRequest()
    xhr.open('get', 'ziliao0.php')
    xhr.send()

    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
            if (xhr.status == 200) {
                // console.log(xhr.responseText)
                // 将其转化为js对象
                obj = JSON.parse(xhr.responseText)
                ouser.value = obj.name
                olevel.value = obj.level
                omoney.value = obj.money
                oyear.value = obj.year
            }
        }
    }
}
</script>

用户注册

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>用户注册</title>
    <script src="https://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>
    <h1>你好,世界!</h1>
    <input type="text" name="user" id="user">
    <span id="usertip"></span>
</body>
</html>
<script>
$(function () {
    $('#user').blur(function () {
        // 通过ajax将内容传递给服务端,服务端判断之后,给你个状态,你再去对应的修改你的内容
        $.ajax({
            type: "POST",
            url: "zhuce.php",
            data: "name=" + $(this).val(),
            success: function(msg){
                // msg就是服务端给你的内容
                var obj = JSON.parse(msg)
                if (obj.state == 1) {
                    $('#usertip').html('√').css('backgroundColor', 'green')
                } else {
                    $('#usertip').html('该用户已经注册').css('backgroundColor', 'red')
                }
            }
        });
    })
})
</script>

相关文章

  • AJAX

    主要内容: ajax 是什么、原生ajax 写法和jQuery ajax写法。 AJAX 是什么 ajax,即As...

  • JavaScript进阶知识点--AJAX及JSON

    AJAX 关于 AJAX 什么是 AJAX AJAX 的全称是 Asynchronous JavaScript a...

  • HTML5权威指南 | 第五部分 高级功能

    三十二、使用AJAX(上) Ajax起步: 使用Ajax事件: Ajax请求的错误处理: 中止Ajax请求: 三十...

  • ajax学习笔记

    Ajax学习笔记 Ajax简介 1. Ajax是什么? Ajax : Asynochronous javascri...

  • AJAX

    一、简介 AJAX菜鸟教程 什么是 AJAX ? AJAX = 异步 JavaScript 和 XML。 AJAX...

  • js之AJAX复习

    异步交互和同步交互 什么是Ajax? Ajax的工作原理。 Ajax包含的技术: Ajax的缺陷: Ajax的核心...

  • 复习jQuery - ajax

    jQuery ajax - ajax() 方法 $.ajax({ url:'oo.php', ...

  • jQuery中Ajax请求的使用和四个步骤示例

    ajax() 方法用于执行 AJAX(异步 HTTP)请求,所有的 jQuery AJAX 方法都使用 ajax(...

  • ajax

    1、什么是ajax? 2、ajax的原理 3、ajax的核心对象 4、ajax的优点: ajax的缺点: 被jqu...

  • ajax

    Ajax 1 - 请求纯文本 Ajax 2 - 请求JSON数据 Ajax 3 - 请求Github接口 Ajax...

网友评论

    本文标题:ajax

    本文链接:https://www.haomeiwen.com/subject/ldwtwftx.html