什么是ajax
一种创建交互式网页应用的网页开发技术。
一种用于异步显示数据的相关技术(在不重新加载网页的情况下发送和检索数据。
一种利用XML Http Request对象和服务器进行数据交互的方式
为了实现异步通讯,提高用户体验度,而将很多旧知识(XML,DOM,JavaScript,HTML,Jquery,Css……)重新融合的一个新的知识框架
为什么要学ajax
只要涉及到了交互,那就需要用到ajax,所以为了使页面活过来,实现动态更新,那就需要用到ajax
ajax使用的技术
- HTML / XHTML和CSS - 这些技术用于显示内容和样式。
- DOM - 用于动态显示和与数据交互。
- XML - 用于与服务器之间传送数据
- XMLHttpRequest - 用于客户端和服务器之间的异步通信。
- JavaScript - 主要用于客户端验证。
ajax有哪些优点?
- 快速回复
- 带宽利用率
- 在从服务器检索数据之前,不会阻止用户。
- 它允许我们只将重要数据发送到服务器。
- 它使应用程序具有交互性和更快速。
又有哪些缺点
- 取决于JavaScript
- 安全问题
- 调试很困难
ajax如何使用:
ajax常用的请求方式有post,get,delete。不常用copy、head、link等等。
get
表单
<form action="/login" target="_blank" method="GET">
<input type="text" name="email"/>
<input type="passsword" name="password" />
<button type="submit">
提交
</button>
</form>
xhr
var xhr = new XMLHttprequest();
xhr.open("GET","ajax_test.html",true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send("fname=Henry&lname=Ford");
post
与上面趋同
delete
如果不用 ajax 发送 PUT,我们可以通过设置一个隐藏域设置 _method 的值,如下:
<form action="/emps" method="post">
<input type="hidden" name="_method" value="PUT">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit"/>
</form>
浏览器 form 表单只支持 GET 与 POST 请求,而DELETE、PUT 等 method 并不支持,Spring3.0 添加了一个过滤器,可以将这些请求转换为标准的 http 方法,使得支持 GET、POST、PUT 与 DELETE 请求。
ajax 发送 delete请求
删除员工
function deleteEmp(empId){
$.ajax({
url : "emps",
data : {_method : "DELETE", empId : empId},
type : "POST",
success : function(result){
}
})
}
发送表单 ajax 请求:
$("#updateBtn").click(function(){
$.ajax({
url : "emps",
data : $("#updateEmpFormNode").serialize()+"&_method=put",
type : "post",
success : function(result){
alert(result);
}
})
})
XMLHttpRequest对象
前文我们说到ajax是一种利用XMLHttpRequest对象和服务器进行数据交互的方式
那么什么是XMLHttpRequest对象
XMLHttpRequest对象是一个JavaScript API,用于在客户端和服务器之间进行数据传输
作为ajax的核心,它提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。该对象使得ajax 可以同步或者异步地请求Web 服务器,并且能够以文本或者一个 DOM 文档的形式返回内容,实现不刷新页面的情况下更新网页内容的效果
比如,在一个社交网站中,我们可以使用XMLHttpRequest对象获取新的消息或更新朋友列表,而无需刷新页面。
需要注意的是,在处理跨域请求的时候,XMLHttpRequest对象会受到同源策略的限制。如果你要处理跨域请求,你需要了解CORS(跨来源资源共享)或JSONP等技术,以确保通信安全性和数据完整性。
XMLHttpRequest的目的是
- 它将后台数据发送到服务器。
- 它从服务器请求数据。
- 它从服务器接收数据。
- 它在不重新加载页面的情况下更新数据。
XMLHttpRequest的属性有哪些
onReadyStateChange
- 只要readystate属性发生变化,就会调用它。readyState
- 表示请求的状态。responseText
- 它将响应作为文本返回。responseXML
- 它以XML格式返回响应。status
- 返回请求的状态编号。statusText
- 返回状态的详细信息。
XMLHttpRequest的重要方法有
abort()
- 用于取消当前请求。getAllResponseHeaders()
- 返回标题详细信息。getResponseHeader()
- 返回特定的标题详细信息。open()
- 用于打开请求。send()
- 用于发送请求。setRequestHeader()
- 它添加了请求标头。
XMLHttpRequest使用的open()方法有哪些类型?
open(method,URL)
- 它打开指定get或post方法和URL的请求。open(method,URL,async)
- 它与上面相同但是指定异步或不指定。open(method,URL,async,userName,password)
- 与上面相同,但指定用户名和密码。
XMLHttpRequest使用的send()方法有哪些类型?
send()
- 它发送get请求send(string)
- 发送帖子请求。