加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘孜站长网 (https://www.0836zz.com.cn/)- 运维、物联设备、数据计算、智能推荐、云管理!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

全面分析前端的网络请求方式

发布时间:2019-03-29 01:06:03 所属栏目:优化 来源:ConardLi
导读:一、前端进行网络请求的关注点 大多数情况下,在前端发起一个网络请求我们只需关注下面几点: 传入基本参数(url,请求方式) 请求参数、请求参数类型 设置请求头 获取响应的方式 获取响应头、响应状态、响应结果 异常处理 携带cookie设置 跨域请求 二、前
副标题[/!--empirenews.page--]

 一、前端进行网络请求的关注点

大多数情况下,在前端发起一个网络请求我们只需关注下面几点:

  • 传入基本参数(url,请求方式)
  • 请求参数、请求参数类型
  • 设置请求头
  • 获取响应的方式
  • 获取响应头、响应状态、响应结果
  • 异常处理
  • 携带cookie设置
  • 跨域请求

二、前端进行网络请求的方式

  • form表单、ifream、刷新页面
  • Ajax - 异步网络请求的开山鼻祖
  • jQuery - 一个时代
  • fetch - Ajax的替代者
  • axios、request等众多开源库

三、关于网络请求的疑问

  • Ajax的出现解决了什么问题
  • 原生Ajax如何使用
  • jQuery的网络请求方式
  • fetch的用法以及坑点
  • 如何正确的使用fetch
  • 如何选择合适的跨域方式

带着以上这些问题、关注点我们对几种网络请求进行一次全面的分析。

四、Ajax的出现解决了什么问题

在Ajax出现之前,web程序是这样工作的:

全面分析前端的网络请求方式

这种交互的的缺陷是显而易见的,任何和服务器的交互都需要刷新页面,用户体验非常差,Ajax的出现解决了这个问题。Ajax全称Asynchronous JavaScript + XML(异步JavaScript和XML)

使用Ajax,网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面。

Ajax本身不是一种新技术,而是用来描述一种使用现有技术集合实现的一个技术方案,浏览器的XMLHttpRequest是实现Ajax最重要的对象(IE6以下使用ActiveXObject)。

尽管X在Ajax中代表XML, 但由于JSON的许多优势,比如更加轻量以及作为Javascript的一部分,目前JSON的使用比XML更加普遍。

五、原生Ajax的用法

这里主要分析XMLHttpRequest对象,下面是它的一段基础使用:     

  1. var xhr = new XMLHttpRequest();  
  2.         xhr.open('post','www.xxx.com',true)  
  3.         // 接收返回值  
  4.         xhr.onreadystatechange = function(){  
  5.             if(xhr.readyState === 4 ){  
  6.                 if(xhr.status >= 200 && xhr.status < 300) || xhr.status == 304){  
  7.                     console.log(xhr.responseText);  
  8.                 }  
  9.             }  
  10.         }  
  11.         // 处理请求参数  
  12.         postData = {"name1":"value1","name2":"value2"};  
  13.         postData = (function(value){  
  14.         var dataString = "";  
  15.         for(var key in value){  
  16.              dataString += key+"="+value[key]+"&";  
  17.         };  
  18.           return dataString;  
  19.         }(postData));  
  20.         // 设置请求头  
  21.         xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");  
  22.         // 异常处理  
  23.         xhr.onerror = function() {  
  24.            console.log('Network request failed')  
  25.         }  
  26.         // 跨域携带cookie  
  27.         xhr.withCredentials = true;  
  28.         // 发出请求  
  29.         xhr.send(postData);  

(编辑:甘孜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读