当前位置: 首页 > news >正文

重庆做网站_重庆网站建设_重庆网络推广_重庆网络公司wordpress 作者 评论

重庆做网站_重庆网站建设_重庆网络推广_重庆网络公司,wordpress 作者 评论,wordpress和新浪微博同步,网站访问代理在线1 前端数据请求方式 2 Http协议的解析 3 XHR的基本用法 4 XHR的进阶和封装 5 Fetch的使用详解 6 前端文件上传流程 早期的页面都是后端做好#xff0c;浏览器直接拿到页面展示的#xff0c;用到的是jsp、asp、php等等的语言。 这个叫做服务器端渲染SSR。 这里后端向前端…1 前端数据请求方式 2 Http协议的解析 3 XHR的基本用法 4 XHR的进阶和封装 5 Fetch的使用详解 6 前端文件上传流程 早期的页面都是后端做好浏览器直接拿到页面展示的用到的是jsp、asp、php等等的语言。 这个叫做服务器端渲染SSR。 这里后端向前端发送数据数据结果前端渲染页面这个叫做 客户端渲染。 FeHelper插件的演练 1 const banners {banner: {context: {currentTime: 1538014774},isEnd: true,list: [{acm: 3.mce.2_10_1jhwa.43542.0.ccy5br4OlfK0Q.pos_0-m_454801-sd_119,height: 390,height923: 390,image: https://s10.mogucdn.com/mlcdn/c45406/180926_45fkj8ifdj4l824l42dgf9hd0h495_750x390.jpg,image923: https://s10.mogucdn.com/mlcdn/c45406/180926_7d5c521e0aa3h38786lkakebkjlh8_750x390.jpg,link: https://act.mogujie.com/huanxin0001?acm3.mce.2_10_1jhwa.43542.0.ccy5br4OlfK0Q.pos_0-m_454801-sd_119,title: 焕新女装节,width: 750,width923: 750},{acm: 3.mce.2_10_1ji16.43542.0.ccy5br4OlfK0R.pos_1-m_454889-sd_119,height: 390,height923: 390,image: https://s10.mogucdn.com/mlcdn/c45406/180926_31eb9h75jc217k7iej24i2dd0jba3_750x390.jpg,image923: https://s10.mogucdn.com/mlcdn/c45406/180926_14l41d2ekghbeh771g3ghgll54224_750x390.jpg,link: https://act.mogujie.com/ruqiu00001?acm3.mce.2_10_1ji16.43542.0.ccy5br4OlfK0R.pos_1-m_454889-sd_119,title: 入秋穿搭指南,width: 750,width923: 750},{acm: 3.mce.2_10_1jfj8.43542.0.ccy5br4OlfK0S.pos_2-m_453270-sd_119,height: 390,height923: 390,image: https://s10.mogucdn.com/mlcdn/c45406/180919_3f62ijgkj656k2lj03dh0di4iflea_750x390.jpg,image923: https://s10.mogucdn.com/mlcdn/c45406/180919_47iclhel8f4ld06hid21he98i93fc_750x390.jpg,link: https://act.mogujie.com/huanji001?acm3.mce.2_10_1jfj8.43542.0.ccy5br4OlfK0S.pos_2-m_453270-sd_119,title: 秋季护肤大作战,width: 750,width923: 750},{acm: 3.mce.2_10_1jepe.43542.0.ccy5br4OlfK0T.pos_3-m_452733-sd_119,height: 390,height923: 390,image: https://s10.mogucdn.com/mlcdn/c45406/180917_18l981g6clk33fbl3833ja357aaa0_750x390.jpg,image923: https://s10.mogucdn.com/mlcdn/c45406/180917_0hgle1e2c350a57ekhbj4f10a6b03_750x390.jpg,link: https://act.mogujie.com/liuxing00001?acm3.mce.2_10_1jepe.43542.0.ccy5br4OlfK0T.pos_3-m_452733-sd_119,title: 流行抢先一步,width: 750,width923: 750}],nextPage: 1}}XHR-XHR请求的基本使用 1 // 1.创建XMLHttpRequest对象const xhr new XMLHttpRequest()// 2.监听状态的改变(宏任务)xhr.onreadystatechange function() {// console.log(xhr.response)if (xhr.readyState ! XMLHttpRequest.DONE) return// 将字符串转成JSON对象(js对象)const resJSON JSON.parse(xhr.response)const banners resJSON.data.banner.listconsole.log(banners)}// 3.配置请求open// method: 请求的方式(get/post/delete/put/patch...)// url: 请求的地址xhr.open(get, http://123.207.32.32:8000/home/multidata)// 4.发送请求(浏览器帮助发送对应请求)xhr.send()XHR-XHR状态变化的监听 这里发送的是异步请求并且可以拿到状态码4种状态码对应不同的事件。 // 1.创建XMLHttpRequest对象const xhr new XMLHttpRequest()// 2.监听状态的改变(宏任务)// 监听四种状态xhr.onreadystatechange function() {// 1.如果状态不是DONE状态, 直接返回if (xhr.readyState ! XMLHttpRequest.DONE) return// 2.确定拿到了数据console.log(xhr.response)}// 3.配置请求openxhr.open(get, http://123.207.32.32:8000/home/multidata)// 4.发送请求(浏览器帮助发送对应请求)xhr.send() XHR-XHR发送同步的请求 open的第三个参数可以设置是否是异步请求设置false就是改变成同步请求只有服务器返回浏览器有接过来才会执行后续的代码。 // 1.创建XMLHttpRequest对象const xhr new XMLHttpRequest()// 2.监听状态的改变(宏任务)// 监听四种状态// xhr.onreadystatechange function() {// // 1.如果状态不是DONE状态, 直接返回// if (xhr.readyState ! XMLHttpRequest.DONE) return// // 2.确定拿到了数据// console.log(xhr.response)// }// 3.配置请求open// async: false// 实际开发中要使用异步请求, 异步请求不会阻塞js代码继续执行xhr.open(get, http://123.207.32.32:8000/home/multidata, false)// 4.发送请求(浏览器帮助发送对应请求)xhr.send()// 5.同步必须等到有结果后, 才会继续执行console.log(xhr.response)console.log(------)console.log()console.log(******)XHR-XHR其他事件的监听 函数的调用方式不同。 const xhr new XMLHttpRequest()// onload监听数据加载完成xhr.onload function() {console.log(onload)}xhr.open(get, http://123.207.32.32:8000/home/multidata)xhr.send() XHR-XHR响应数据和类型 告知xhr获取到的数据的类型     xhr.responseType json // 1.const xhr new XMLHttpRequest()// 2.onload监听数据加载完成xhr.onload function() {// const resJSON JSON.parse(xhr.response)console.log(xhr.response)// console.log(xhr.responseText)// console.log(xhr.responseXML)}// 3.告知xhr获取到的数据的类型xhr.responseType json// xhr.responseType xml// 4.配置网络请求// 4.1.json类型的接口xhr.open(get, http://123.207.32.32:8000/home/multidata)// 4.2.json类型的接口// xhr.open(get, http://123.207.32.32:1888/01_basic/hello_json)// 4.3.text类型的接口// xhr.open(get, http://123.207.32.32:1888/01_basic/hello_text)// 4.4.xml类型的接口// xhr.open(get, http://123.207.32.32:1888/01_basic/hello_xml)// 5.发送网络请求xhr.send() XHR-获取HTTP的状态码 xhr.status // 1.创建对象const xhr new XMLHttpRequest()// 2.监听结果xhr.onload function() {console.log(xhr.status, xhr.statusText)// 根据http的状态码判断是否请求成功if (xhr.status 200 xhr.status 300) {console.log(xhr.response)} else {console.log(xhr.status, xhr.statusText)}}xhr.onerror function() {console.log(onerror, xhr.status, xhr.statusText)}// 3.设置响应类型xhr.responseType json// 4.配置网络请求// xhr.open(get, http://123.207.32.32:8000/abc/cba/aaa)xhr.open(get, http://123.207.32.32:8000/home/multidata)// 5.发送网络请求xhr.send() XHR-GET-POST请求传参 1 const formEl document.querySelector(.info)const sendBtn document.querySelector(.send)sendBtn.onclick function() {// 创建xhr对象const xhr new XMLHttpRequest()// 监听数据响应xhr.onload function() {console.log(xhr.response)}// 配置请求xhr.responseType json// 1.传递参数方式一: get - query// xhr.open(get, http://123.207.32.32:1888/02_param/get?namewhyage18address广州市)// 2.传递参数方式二: post - urlencoded// xhr.open(post, http://123.207.32.32:1888/02_param/posturl)// // 发送请求(请求体body)// xhr.setRequestHeader(Content-type, application/x-www-form-urlencoded)// xhr.send(namewhyage18address广州市)// 3.传递参数方式三: post - formdata// xhr.open(post, http://123.207.32.32:1888/02_param/postform)// // formElement对象转成FormData对象// const formData new FormData(formEl)// xhr.send(formData)// 4.传递参数方式四: post - jsonxhr.open(post, http://123.207.32.32:1888/02_param/postjson)xhr.setRequestHeader(Content-type, application/json)xhr.send(JSON.stringify({name: why, age: 18, height: 1.88}))} XHR-Ajax网络请求封装 1 // 练习hyajax - axiosfunction hyajax({url,method get,data {},headers {}, // tokensuccess,failure} {}) {// 1.创建对象const xhr new XMLHttpRequest()// 2.监听数据xhr.onload function() {if (xhr.status 200 xhr.status 300) {success success(xhr.response)} else {failure failure({ status: xhr.status, message: xhr.statusText })}}// 3.设置类型xhr.responseType json// 4.open方法if (method.toUpperCase() GET) {const queryStrings []for (const key in data) {queryStrings.push(${key}${data[key]})}url url ? queryStrings.join()xhr.open(method, url)xhr.send()} else {xhr.open(method, url)xhr.setRequestHeader(Content-type, application/json)xhr.send(JSON.stringify(data))}return xhr}// 调用者hyajax({url: http://123.207.32.32:1888/02_param/get,method: GET,data: {name: why,age: 18},success: function(res) {console.log(res:, res)},failure: function(err) {// alert(err.message)}})// hyajax({// url: http://123.207.32.32:1888/02_param/postjson,// method: post,// data: {// name: jsondata,// age: 22// },// success: function(res) {// console.log(res:, res)// },// failure: function(err) {// // alert(err.message)// }// })XHR-Ajax网络请求工具 hyajax_promise.js // 练习hyajax - axios function hyajax({url,method get,data {},timeout 10000,headers {}, // token } {}) {// 1.创建对象const xhr new XMLHttpRequest()// 2.创建Promiseconst promise new Promise((resolve, reject) {// 2.监听数据xhr.onload function() {if (xhr.status 200 xhr.status 300) {resolve(xhr.response)} else {reject({ status: xhr.status, message: xhr.statusText })}}// 3.设置类型xhr.responseType jsonxhr.timeout timeout// 4.open方法if (method.toUpperCase() GET) {const queryStrings []for (const key in data) {queryStrings.push(${key}${data[key]})}url url ? queryStrings.join()xhr.open(method, url)xhr.send()} else {xhr.open(method, url)xhr.setRequestHeader(Content-type, application/json)xhr.send(JSON.stringify(data))}})promise.xhr xhrreturn promise } hyajax.js // 练习hyajax - axios function hyajax({url,method get,data {},timeout 10000,headers {}, // tokensuccess,failure } {}) {// 1.创建对象const xhr new XMLHttpRequest()// 2.监听数据xhr.onload function() {if (xhr.status 200 xhr.status 300) {success success(xhr.response)} else {failure failure({ status: xhr.status, message: xhr.statusText })}}// 3.设置类型xhr.responseType jsonxhr.timeout timeout// 4.open方法if (method.toUpperCase() GET) {const queryStrings []for (const key in data) {queryStrings.push(${key}${data[key]})}url url ? queryStrings.join()xhr.open(method, url)xhr.send()} else {xhr.open(method, url)xhr.setRequestHeader(Content-type, application/json)xhr.send(JSON.stringify(data))}return xhr } !DOCTYPE html html langen headmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/title /head body!-- script src./utils/hyajax.js/script --script src./utils/hyajax_promise.js/scriptscriptconst promise hyajax({url: http://123.207.32.32:1888/02_param/get,data: {username: coderwhy,password: 123456}})promise.then(res {console.log(res:, res)}).catch(err {console.log(err:, err)})/script /body /html XHR-超时时间-取消请求 !DOCTYPE html html langen headmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/title /head bodybutton取消请求/buttonscriptconst xhr new XMLHttpRequest()xhr.onload function() {console.log(xhr.response)}xhr.onabort function() {console.log(请求被取消掉了)}xhr.responseType json// 1.超市时间的设置xhr.ontimeout function() {console.log(请求过期: timeout)}// timeout: 浏览器达到过期时间还没有获取到对应的结果时, 取消本次请求// xhr.timeout 3000xhr.open(get, http://123.207.32.32:1888/01_basic/timeout)xhr.send()// 2.手动取消结果const cancelBtn document.querySelector(button)cancelBtn.onclick function() {xhr.abort()}/script/body /html Fetch-Fetch函数基本使用 !DOCTYPE html html langen headmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/title /head bodyscript// 1.fetch发送get请求// 1.1.未优化的代码// fetch(http://123.207.32.32:8000/home/multidata).then(res {// // 1.获取到response// const response res// // 2.获取具体的结果// response.json().then(res {// console.log(res:, res)// })// }).catch(err {// console.log(err:, err)// })// 1.2. 优化方式一:// fetch(http://123.207.32.32:8000/home/multidata).then(res {// // 1.获取到response// const response res// // 2.获取具体的结果// return response.json()// }).then(res {// console.log(res:, res)// }).catch(err {// console.log(err:, err)// })// 1.3. 优化方式二:// async function getData() {// const response await fetch(http://123.207.32.32:8000/home/multidata)// const res await response.json()// console.log(res:, res)// }// getData()// 2.post请求并且有参数async function getData() {// const response await fetch(http://123.207.32.32:1888/02_param/postjson, {// method: post,// // headers: {// // Content-type: application/json// // },// body: JSON.stringify({// name: why,// age: 18// })// })const formData new FormData()formData.append(name, why)formData.append(age, 18)const response await fetch(http://123.207.32.32:1888/02_param/postform, {method: post,body: formData})// 获取response状态console.log(response.ok, response.status, response.statusText)const res await response.json()console.log(res:, res)}getData()/script/body /html XHR-文件上传的接口演练 !DOCTYPE html html langen headmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/title /head bodyinput classfile typefilebutton classupload上传文件/buttonscript// xhr/fetchconst uploadBtn document.querySelector(.upload)uploadBtn.onclick function() {// 1.创建对象const xhr new XMLHttpRequest()// 2.监听结果xhr.onload function() {console.log(xhr.response)}xhr.onprogress function(event) {console.log(event)}xhr.responseType jsonxhr.open(post, http://123.207.32.32:1888/02_param/upload)// 表单const fileEl document.querySelector(.file)const file fileEl.files[0]const formData new FormData()formData.append(avatar, file)xhr.send(formData)}/script/body /html Fetch-文件上传的接口演练 !DOCTYPE html html langen headmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/title /head bodyinput classfile typefilebutton classupload上传文件/buttonscript// xhr/fetchconst uploadBtn document.querySelector(.upload)uploadBtn.onclick async function() {// 表单const fileEl document.querySelector(.file)const file fileEl.files[0]const formData new FormData()formData.append(avatar, file)// 发送fetch请求const response await fetch(http://123.207.32.32:1888/02_param/upload, {method: post,body: formData})const res await response.json()console.log(res:, res)}/script/body /html
http://www.zqtcl.cn/news/846845/

相关文章:

  • 海外网站导航前端静态网站开发
  • 德庆网站建设价格网站的月度流量统计报告怎么做
  • 网站哪里买外链品牌网站设计步骤
  • 网站推广 优帮云淄博网站制作公司
  • 二手书哪个网站做的好wordpress 直排主题
  • 网站开发风险分析做情诗网站
  • 怎样可以快速增加网站的反链网络广告平台有哪些
  • 学校网站源码小游戏网站审核怎么做
  • 西乡网站建设政务网站开发协议
  • 美食网站开发环境北京app网站建设
  • 郑州网站建设推广渠道重庆网站建设公司下载
  • 宜宾营销型网站建设网站建设需要什么资质
  • 重庆建网站有哪些学跨境电商要多少钱
  • 上海建设钢结构工程网站深圳电器公司排名
  • 淄博网站建设找淄深网江苏省建设斤网站
  • 免费行情软件app网站红色西安做网站印象网络
  • 宁波网站建设小程序开发聊城wap网站建设
  • 陇南网站网站建设泰安网站的建设
  • 哪个网站有介绍拿到家做的手工活建设银行网站怎么修改手机号码吗
  • 网站地图怎么用淘宝客推广网站建设
  • 外贸零售网站建设购物网站支付功能怎么做
  • 淘宝客如何做自己的网站西宁工程建设招聘信息网站
  • 天津都有哪些制作网站郑州官网首页
  • 个人网站开发模式海南省建设公司官网
  • edu网站开发做爰视频在线观看免费网站
  • 安防公司网站模板网站建设模板下载
  • 贵阳网站建设方案维护一 建设茶叶网站前的市场分析
  • 山东东营建设网官方网站百度电脑版
  • 做网站前途如何海尔网站建设推广
  • 投资公司网站建设万网域名安装wordpress