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

大连网站建设是什么专门做微场景的网站

大连网站建设是什么,专门做微场景的网站,win2008系统asp网站建设,高德地图怎么看实况街景众所周知它们都用来发送请求#xff0c;其实它们区别还蛮大的。这也是面试中的高频题#xff0c;本文将详细进行讲解。 1. ajax 英译过来是Aysnchronous JavaScript And XML#xff0c;直译是异步JS和XML#xff08;XML类似HTML#xff0c;但是设计宗旨就为了传输数据其实它们区别还蛮大的。这也是面试中的高频题本文将详细进行讲解。 1. ajax 英译过来是Aysnchronous JavaScript And XML直译是异步JS和XMLXML类似HTML但是设计宗旨就为了传输数据现已被JSON代替解释一下就是说以XML作为数据传输格式发送JS异步请求。但实际上ajax是一个一类技术的统称的术语包括XMLHttpRequest、JS、CSS、DOM等它主要实现网页拿到请求数据后不用刷新整个页面也能呈现最新的数据。 下面我们简单封装一个ajax请求【面试高频题】 const ajaxGet function (url) {const xhr new XMLHttpRequest()xhr.open(get, url)xhr.onreadystatechange () {if (xhr.readyState 4) {if (xhr.status 200 xhr.status 400) {console.log(xhr.response); // 响应结果}}}xhr.onerror (error) {console.log(error, xhr.status)}xhr.send() }2. fetch 它其实就是一个JS自带的发送请求的一个api拿来跟ajax对比是完全不合理的它们完全不是一个概念的东西适合拿来和fetch对比的其实是xhr也就是上面封装ajax请求的代码里的XMLHttpRequest这两都是JS自带的发请求的方法而fetch是ES6出现的自然功能比xhr更强主要原因就是它是基于Promise的它返回一个Promise因此可以使用.then(res )的方式链式处理请求结果这不仅提高了代码的可读性还避免了回调地狱(xhr通过xhr.onreadystatechange () {}这样回调的方式监控请求状态要是想在请求后再发送请求就要在回调函数内再发送请求这样容易出现回调地狱)的问题。而且JS自带语法也非常简洁几行代码就能发起一个请求用起来很方便据说大佬都爱用。 它的特点是 使用 promise不使用回调函数。采用模块化设计比如 rep、res 等对象分散开来比较友好。通过数据流对象处理数据可以提高网站性能。 下面我们简单写个fetch请求的示例 // get请求 fetch(http://127.0.0.1:8000/get).then(res {if (!res.ok) {throw new Error(请求错误状态码为, res.status)}return res.text() }).then(data {console.log(data); }) // post请求 fetch(http://127.0.0.1:8000/post, {method: post,headers: {Content-Type: application/json},mode: no-cors, // 设置cors表示只能发送跨域的请求no-cors表示跨不跨域都能发body: JSON.stringify({name: zhangsan,age: 18}) }).then(res {return res.json() }).then(data {console.log(data); })3. axios axios是用于网络请求的第三方库它是一个库。axios利用xhr进行了二次封装的请求库xhr只是axios中的其中一个请求适配器axios在nodejs端还有个http的请求适配器axios xhr http它返回一个Promise。【项目中经常需要封装的axios】 它的特点 在浏览器环境中创建 XMLHttpRequests在node.js环境创建 http 请求返回Promise拦截请求和响应自动转换 JSON 数据转换请求数据和响应数据取消请求 它的基础语法是 // 发送 Get 请求 axios({method: get,url: ,params: {} // 查询query使用params }) // 发送 Post 请求 axios({method: post,url: ,data: {} // 请求体body用data })下面我们在vue项目中封装一个使用axios实现的请求。 libs/config.js配置文件 const serverConfig {baseUrl: http://127.0.0.1:8000, // 请求基础地址可根据环境自定义useTokenAuthentication: false, // 是否开启token认证 }; export default serverConfig;libs/request.js封装请求 import axios from axios; // 第三方库 需要安装 import serverConfig from ./config; // 创建axios实例 const apiClient axios.create({baseURL: serverConfig.baseUrl, // 基础请求地址withCredentials: false, // 跨域请求是否需要携带cookieheaders: {Accept: application/json,Content-Type: application/json,},timeout: 10000, // 请求超时时间 });// 请求拦截 apiClient.interceptors.request.use((config) {// 请求发送前的处理逻辑 比如token认证设置各种请求头啥的// 如果开启token认证if (serverConfig.useTokenAuthentication) {// 请求头携带tokenconfig.headers.Authorization localStorage.getItem(token);}return config;},(error) {// 请求发送失败的处理逻辑return Promise.reject(error);} );// 响应拦截 apiClient.interceptors.response.use((response) {// 响应数据处理逻辑比如判断token是否过期等等// 代码块return response;},(error) {// 响应数据失败的处理逻辑let message ;if (error error.response) {switch (error.response.status) {case 302:message 接口重定向了;break;case 400:message 参数不正确;break;case 401:message 您未登录或者登录已经超时请先登录;break;case 403:message 您没有权限操作;break;case 404:message 请求地址出错: ${error.response.config.url};break;case 408:message 请求超时;break;case 409:message 系统已存在相同数据;break;case 500:message 服务器内部错误;break;case 501:message 服务未实现;break;case 502:message 网关错误;break;case 503:message 服务不可用;break;case 504:message 服务暂时无法访问请稍后再试;break;case 505:message HTTP 版本不受支持;break;default:message 异常问题请联系管理员;break;}}return Promise.reject(message);} );export default apiClient;/api/index.js配置请求接口这里一个get一个post import apiClient from /libs/request;let getInfo (params) {return apiClient({url: /get,method: get,params, // axios的get请求query用params}); }; let postInfo (params) {return apiClient({url: /post,method: post,data: params, // axios的post请求body用data}); }; export default {getInfo,postInfo, };App.vue用于测试请求结果 script import api from ./api/index.js export default {data() {return {isH5: true}},created() {this.init()},methods: {init() {api.getInfo().then(res {console.log(res.data);})api.postInfo({name: zhangsan,age: 18}).then(res {console.log(res.data);})}}, } /script结果如下 4. 总结 总结一部分区别如下【这三个东西差别真的很大】 Ajaxfetchaxios类型术语技术的统称js内置的api第三方库是否使用xhr二次封装是否是是否返回Promise否是是
http://www.zqtcl.cn/news/920149/

相关文章:

  • 茌平做网站推广网站刷链接怎么做的
  • 东莞网站优化推广Wordpress的根目录在哪
  • 备案的网站建设书是什么意思跨境电商代运营公司十强
  • 网站建设的功能要求wordpress typo3
  • 深圳网站平台前程无忧招聘网
  • 个人业余做网站怎么弄wordpress子主题修改
  • 深圳营销型网站建设优化做虚拟币网站需要什么手续
  • 青海市建设局网站西安网站seo推广
  • 广元做网站的公司合肥市建设网
  • 如何做网站不被查如何做网站内部优化
  • 网站建设用什么框架好做网站需要用到哪些开发软件
  • 网站建设工程师待遇wordpress 工具插件
  • 网站怎样做反向链接中国新闻社邮箱
  • 专业的外贸网站建设wordpress后台编辑
  • 德清建设银行网站2016wordpress淘宝客程序
  • 网站建设包括两个方面专业网站设计企业
  • dnf可以去哪个网站做代练导购网站 模板
  • 苏州网站开发培训深圳福田区口岸社区
  • 信息网站开发网络公司jsp实战网站开发视频
  • 做 理财网站深圳网站快速优化公司
  • 公司网站建设方案江门建设建筑网站
  • 网站是生成静态好还是动态好怎么找到域名做的那个网站
  • 婚纱网站页面设计上海商地网站建设公司
  • 模板手机网站建设多少钱百度搜索词排名
  • 怎么学做网站住房和城乡建设部网站一级建造师
  • 政务公开网惠州seo推广公司
  • 建设英文商城网站网站开发工具选择
  • 沈阳市浑南区城乡建设局网站淄博哪里有网站建设平台
  • 做不锈钢管网站口碑好的定制网站建设提供商
  • 做网站推广销售wordpress 随机页面