2024年前端最新JavaScript之AJAX基础,论程序员成长的正确姿势
学习分享,共勉
题外话,毕竟我工作多年,深知技术改革和创新的方向,Flutter作为跨平台开发技术、Flutter以其美观、快速、高效、开放等优势迅速俘获人心
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

========
Ajax技术是一种浏览器与服务器间的通信技术,能够向服务器请求额外的数据而无须卸载页面,其技术核心是XMLHttpRequest(XHR)对象。
2、XHR对象
=======
IE7、Firefox、Opera、Chrome、Safari都支持原生XHR对象,在这些浏览器中创建XHR对象方式为:var xhr=new XMLRequest();IE7之前的版本有所不同。以下是各种浏览器兼容的创建XHR的方法。
function creatXHR () {
if (typeof(XMLHttpRequest)!=“undefined”) {
return new XMLHttpRequest(); //针对IE7及四大浏览器
}else if (typeof ActiveXObject !=“undefined”) {
if (typeof arguments.callee.activeXString!=“string”) {
var versions=[“MSXML2.XMLHttp.6.0”,“MSXML2.XMLHttp.3.0”,“MSXML2.XMLHttp”];
for (var i=0,len=versions.length;i<len;i++) {
try{
var xhr = new ActiveXObject(versions[i]);//针对IE7以下版本
arguments.callee.activeXString=versions[i];
return xhr;
}catch(e){
//TODO handle the exception
}
}
}
return new ActiveXObject(arguments.callee.activeXString);
}else{
throw new Error(“No XHR object available”);
}
}
2.1 XHR用法
1 调用open()方法
xhr.open(“get”,”example.jsp”,false);
注意:1 URL是相对于当前页面(也可使用绝对路径)
2 该方法并不会真发送请求,只是启动一个请求准备发送
2 调用send()方法
xhr.seng(null);
注意:该方法接受一个参数,即要作为请求主体发送的数据,若不需要通过请求主体发 送数据,则必须传入null。
3 检查响应状态
if ((xhr.status>=200&&xhr.status<300)||xhr.status==304) {//不写200是为了兼容
alert(xhr.statusText);
}else{
alert(“Request was unsuccessful:”+xhr.status);
}
false 是指请求同步,即JS代码会等到服务器响应后再继续执行。收到响应后,响应的 数据会自动填充XHR对象的属性,相关属性有:
responseText:作为响应主体被返回的文本;
responseXML:若响应的内容类型是“text/xml”或“application/xml”,则这个属性中 将保存包含着响应数据的XML DOM文档;
status:响应的HTTP状态;
statusText:HTTP状态的说明
HTTP状态代码是200时表示响应成功,304表示请求资源没有改变,即可以用浏览器 中缓存的版本。
2.2 HTTP头部信息
XHR对象提供了操作两种头部(请求和响应)信息的方法
1 设置请求响应头部setRequestHeader(“头部字段名称”,“头部字段值”);注意该方法 必须在open之后,send之前调用;
2 取得响应头部信息getResponseHeader(“头部字段名称”);也可用方法getAllResponseHeaders()返回包含所有头部信息的长字符串,一个头部字段占一行
2.3 Get请求
如要向url中添加查询字符串参数,那么该字符串必须经过正确的编码(encodeURIComponent)才行,否则会出现查询字符串格式问题。
function addURIComponent (url,name,value) {
url+=(url.indexOf(“?”)==-1?“?”:“&”);
url+=encodeURIComponent(name)+“=”+encodeURIComponent(value);
return url;
}
2.4 POST请求
当使用post方式提交请求时,send方法的参数为要传入给服务器的数据
xhr.open(“post”,”example.jsp”,true);
xhr.setRequestHeader(“Content-Type”,”application/x-www-form-urlencodede”);
学习分享,共勉
题外话,毕竟我工作多年,深知技术改革和创新的方向,Flutter作为跨平台开发技术、Flutter以其美观、快速、高效、开放等优势迅速俘获人心
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

ww-form-urlencodede”);
学习分享,共勉
题外话,毕竟我工作多年,深知技术改革和创新的方向,Flutter作为跨平台开发技术、Flutter以其美观、快速、高效、开放等优势迅速俘获人心
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
[外链图片转存中…(img-uc4HjhDb-1715008469670)]
更多推荐


所有评论(0)