广州建设网站公司哪个济南兴田德润有活动吗做网站的图片=gif
news/
2025/9/23 15:12:02/
文章来源:
广州建设网站公司哪个济南兴田德润有活动吗,做网站的图片=gif,页面设计课后反思,优礼品网站模板Ajax-05
xhr#xff08;level-2#xff09;新特性
responseType属性和response属性
responseType: 表示预期服务器返回的数据的类型
“” #xff0c;默认空text#xff0c;和空一样#xff0c;表示服务器返回的数据是字符串格式json#xff0c;表示服务器返回的是js…Ajax-05
xhrlevel-2新特性
responseType属性和response属性
responseType: 表示预期服务器返回的数据的类型
“” 默认空text和空一样表示服务器返回的数据是字符串格式json表示服务器返回的是json格式document表示服务器返回的是xml格式 scriptlet xhr new XMLHttpRequest();xhr.onreadystatechange function () {if (this.readyState 4 this.status 200) {console.log(this.response);}};xhr.responseType json; // 指定服务器返回的数据是json类型xhr.open(GET, http://www.liulongbin.top:3006/api/getbooks);xhr.send();/scriptresponse响应
用于接收服务器返回的结果response可以接收任何类型的结果会根据responseType指定的值自动处理服务器返回的结果自动将JSON转成JS
onload事件
onloadend事件
onloadstart事件 script// window.onload function () {// }let xhr new XMLHttpRequest();// ajax请求完毕(成功)当readyState4的时候会触发xhr.onload事件xhr.onload function () {// ? 能不能在这里接收到服务器返回的结果// ? 要不要加判断然后在接收结果console.log(this.response);};xhr.open(GET, http://www.liulongbin.top:3006/api/getbooks);xhr.send();/*相关的其他事件- onload ajax请求成功之后触发- onloadstart ajax请求之前触发- onloadend ajax请求完成之后触发无论成功或失败都会触发*//scriptjQuery其他方法
$.ajax()其他选项
$.ajax({type: GET,url: xxxxx,data: {},success: function (res) {},contentType: false, // 默认值 application/x-www-form-urlencodedprocessData: false,/*下面的选项大家知道了解即可*/timeout: 10, // 设置请求超时事件ontimeout: function () {}, // 请求超时之后的处理函数beforeSend: function () {}, // 发送请求之前触发的函数complete: function () {}, // 表示请求响应结束之后触发的函数无论成功失败dataType: json, // 预期服务器返回数据的类型相当于responseTypeheaders: {}, // 用于设置请求头xhr: function () {let xhr new XMLH........return xhr; // 必须return xhr对象}, // 允许我们自定义xhr对象来完成一些jQuery做不到的事
});$.ajaxSetup();
全局配置ajax选项
$.ajaxSetup({// 对象里面的内容和$.ajax里面的对象的内容格式一样timeout: 100, // 全局配置请求超时时间为100毫秒type: POST, // 全局配置请求方式为POST
});$(document).ajaxStart();
ajax请求开始触发的事件
$(document).ajaxStop();
ajax请求终止后触发的事件
例如NProgress.start() 和 NProgress.done() 的作用相同
$.ajaxPrefilter();
在每个ajax请求发送之前自定义ajax的选项或修改ajax的选项。
$.ajaxPrefilter(function (options) {// options是当前ajax请求的所有选项// 得到ajax请求的所有选项之后可以对他进行修改
});axios简介 它是别人封装的一个能够实现ajax请求的库。 体积小文件大小官方说6kb。 专门用于处理ajax请求比jQuery还要强大没有其他功能
// 有没有类似 $.get的方法
axios.get(http://www.liulongbin.top:3006/api/getbooks).then(function (res) {console.log(res);});https://github.com/axios/axios
跨域理解
同源策略
同源指的是两个url的 协议、域名、端口都相同那么这两个url就是同源的如果两个url的 协议、域名、端口只要要一个不一样叫做非同源如果非同源以下三种行为会受到限制 DOM无法操作cookie无法获取 (了解)Ajax请求无效 两个url指的是打开页面的url和ajax请求的地址 跨域Ajax请求
打开页面的url 和 接口地址的url 如果非同源就是跨域请求。
我们之前练习的所有案例都是跨域请求之所以能够成功是因为 liulongbin 老师的接口做了处理。
如何实现跨域请求
JSONP 出现的比较早浏览器都支持。 CORS 出现的完但是是w3c的标准是标准的解决ajax跨域问题的方法。
JSONP方案实现跨域请求
原生代码实现JSONP
前端准备一个函数比如叫做abc。并且设置好形参准备接收结果前端使用script标签src属性去请求jsonp接口必须指定callback参数值就是abc
细节问题
请求可以通过network查看但是注意它不是ajax请求通过network查看到服务器返回一个字符串这个字符串会被浏览器当做js代码解释正规的JSONP接口都必须传递callback参数值是我们准备好的函数名。
jQuery方法实现JSONP
// 方法一
$.getJSON(url?callback?, data, callback);// 方法二
$.ajax({url: ,data: {},success: function (res) {},dataType: jsonp // 必须指定的一项
});淘宝搜索建议案例
接口
淘宝搜索建议接口https://suggest.taobao.com/sug
请求参数 q – 我们输入的值
步骤
注册输入框的键盘弹起事件判断输入框的值是否为空使用JSONP请求接口获取搜索建议将搜索建议渲染到页面中需要自定义ul和css样式
#sousuo, #sousuo li {list-style: none;padding: 0;margin: 0;
}
#sousuo li {height: 25px;line-height: 25px;padding-left: 5px;color: gray;
}!-- 下面的ul放到搜索区的后面 --
!-- 搜索建议区 --
ul idsousuo/ul// 注册输入框的keyup事件当键盘弹起的时候完成搜索
$(.ipt).keyup(function () {// 判断输入框的值是否为空let val $(this).val().trim();if (val ) {// 清空搜索建议列表$(#sousuo).empty();return;}// 发送JSONP请求获取搜索建议$.ajax({url: https://suggest.taobao.com/sug,data: {q: val},success: function (res) {// console.log(res);let str ;res.result.forEach(item {str li item[0] /li;});// 把拼接好的li放到ul中$(#sousuo).html(str);},dataType: jsonp // 必须指定的});
});CORS方案实现跨域请求
CORS翻译过来跨域资源共享。 CORS实现跨域和前端没有关系。前端还是正常的写代码完成ajax请求即可。 CORS响应头https://developer.mozilla.org/zh-CN/docs/Glossary/CORS
CORS介绍https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS
防抖和节流掌握
防抖 节流
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912943.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!