Ajax 引言
学习Ajax之前一定要回Json,不会的可以参考我的这篇文章↓
https://i.cnblogs.com/posts/edit;postId=13598088
- AJAX = Asynchronous JavaScript and XML(异步的JavaScript和XML)
- AJAX是一种不需要重新加载整个网页的情况下,能够更新部分网页的技术
- Ajax不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术
在2005年,Google通过其Google Suggest使AJAX变得流行起来.
GoogleSuggest使用AJAX创造出动态性极强的web界面:当您在谷歌的搜索框输入关键字时,JavaScript会把这些字符发送到服务器,然后服务器会返回一个搜索建议列表.
作用: 增强B/S体验性
AJAX能干啥?
注册时,输入应户名自动监测用户是否已经存在.
登录时,提示用户名密码错误
删除数据行时,将行ID发送到后台,后台数据库中删除,数据库删除成功后,在页面DOM中将数据行也删除
用页面实现一个小栗子(伪Ajax)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
window.onload = function f(){ //加载的时候运行的函数
var myDate = new Date();
document.getElementById('currentTime').innerText = myDate; //展示时间
}
function loadPage() {
var targetURL = document.getElementById('url').value; //目标URl获取值
console.log(targetURL); //打印下url看看对不对
document.getElementById('iframePosi').src = targetURL; //展示对应页面
}
</script>
<div>
<p>输入要加载的地址<span id="currentTime"></span></p>
<p>
<input type="text" id="url" value="https://www.Baidu.com/">
<input type="button" value="提交" onclick="loadPage()">
</p>
</div>
<div>
<h3>
加载页面位置:
</h3>
<iframe style="width: 100%;height: 500px" id="iframePosi">
</iframe>
</div>
</body>
</html>
AJAX的原理
上面是用页面实现的,没有用纯JS实现Ajax,Ajax其本质是XMLHttpRequest(XHR)
Ajax的核心是(XHR).XHR为向服务器发送请求和解析服务器响应提供了接口.能够以异步的方式从服务器获取新数据.
jQuery提供多个与Ajax有关的方法.
通过jQuery Ajax方法能够使用HTTP get 和Http post从远程服务器上请求文本,HTML,XML或JSon-同时能够把这些外部数据直接载入网页的被选元素中.
jQuery不是生产者,而是大自然的搬运工
jQuery Ajax本质就是XMLHttpRequest,对他进行了封装,方便调用!我们看下
使用jQuery
首先从官网下载.js文件https://jquery.com/download/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gNE4ux3H-1615944516343)(index_files/93eed13a-fd0d-47c0-8199-521f32112629.png)]
两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST。
- GET - 从指定的资源请求数据
- POST - 向指定的资源提交要处理的数据
GET 基本上用于从服务器获得(取回)数据。注释:GET 方法可能返回缓存数据。
POST 也可用于从服务器获取数据。不过,POST 方法不会缓存数据,并且常用于连同请求一起发送数据。
如需学习更多有关 GET 和 POST 以及两方法差异的知识,请阅读我们的 HTTP 方法 - GET 对比 POST。
jQuery - AJAX get() 和 post() 方法
jQuery get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据。
HTTP 请求:GET vs. POST
jQuery $.get() 方法
$.get() 方法通过 HTTP GET 请求从服务器上请求数据。
语法:
$.get(URL,callback);
必需的 URL 参数规定您希望请求的 URL。
可选的 callback 参数是请求成功后所执行的函数名。
下面的例子使用 $.get() 方法从服务器上的一个文件中取回数据:
实例
$("button").click(function(){
$.get("demo_test.php",function(data,status){
alert("数据: " + data + "\n状态: " + status); }); });
$.get() 的第一个参数是我们希望请求的 URL(“demo_test.php”)。
第二个参数是回调函数。第一个回调参数存有被请求页面的内容,第二个回调参数存有请求的状态。
提示: 这个 PHP 文件 (“demo_test.php”) 类似这样:
jQuery $.post() 方法
$.post() 方法通过 HTTP POST 请求向服务器提交数据。
语法:
$.post(URL,data,callback);
必需的 URL 参数规定您希望请求的 URL。
可选的 data 参数规定连同请求发送的数据。
可选的 callback 参数是请求成功后所执行的函数名。
下面的例子使用 $.post() 连同请求一起发送数据:
实例
$("button").click(function(){
$.post("/try/ajax/demo_test_post.php", {
name:"ojbk",
url:"www.baidu.com" },
function(data,status){
alert("Data: \n" + data + "\nStatus: " + status);
});
});
$.post() 的第一个参数是我们希望请求的 URL (“demo_test_post.php”)。
然后我们连同请求(name 和 url)一起发送数据。
“demo_test_post.php” 中的 PHP 脚本读取这些参数,对它们进行处理,然后返回结果。
第三个参数是回调函数。第一个回调参数存有被请求页面的内容,而第二个参数存有请求的状态。