如果送出时的编码类型被设为 "multipart/form-data",它会使用和表单一样的格式。 上面提到了Formdata提供一种表示表单数据得键值对的构造方式,什么意思?...通过Formdata你就不用手动拼接表单元素的值了如name:sdd&pwd:dsf... 或许你会疑惑我为什么要手动拼接表单值,直接提交不就行了吗?...有些时候我们会通过ajax提交表单,通过ajax提交表单时我们不得不手动拼接表单值,数量少还好数量多很容易出错,写着也烦,此处笔者深有体会啊, 不仅如此Formdata支持文件上传,这就意味着你可以通过...ajax实现异步文件这在web开发中太有用了,此博客后台上传文件就是通过Formdata 下面我们看看传统方式于Formdata的区别 传统XMLHttpRequest提交 window.onsubmit...then(res=>{ alert('成功'); }, res=>{ alert('失败'); }); return false; }); 需要注意的是使用
AJAX简介AJAX(Asynchronous JavaScript and XML)是一种用于在后台与服务器进行异步数据交互的技术。...常用的AJAX请求方法有XMLHttpRequest对象和fetch函数。在本文中,我们将使用fetch函数作为示例来封装AJAX请求。...在Promise的执行器函数中,我们使用fetch函数进行实际的AJAX请求。...如果请求失败(状态码不在200-299范围内),我们创建一个新的Error对象,并通过reject函数将Promise状态转变为已失败状态,并传递错误信息。...通过.then()方法,我们添加了处理已完成状态的回调函数,其中我们打印出响应数据。通过.catch()方法,我们添加了处理已失败状态的回调函数,其中我们打印出错误信息。
AJAX实现原理 本质是浏览器底层与操作系统暴露出来的一个API,在浏览器中有一个XMLHttpRequest的构造函数,当我们用一些包如jQuery的ajax或者Axiso请求数据时,用的其实就是它的实例...XMLHttpRequest是浏览器提供了事件通知机制引擎是所暴露出来的API,当发起请求立flag的时候,就是告诉底层,我订阅了这个消息,你要在请求回来的时候通知我,它会暴露出一些钩子给你,你便可以传相应的处理函数进去...AJAX的兼容性 它在一般我们常用的浏览器中是这样实现的。...new window.XMLHttpRequest(); 但是有一部分IE中没有XMLHttpRequest,提供了另一个API做相同的事情。...这个实例有5种状态,可以在它里面readyState 的属性获取到当前状态。
二、什么是Deferred对象 defer,推迟;延期。含义就是”延迟”到未来某个点再执行。 在开发中,我们经常遇到某些耗时很长的javascript操作。...; } }); $.ajax()操作完成后,如果使用的是低于1.5.0版本的jQuery,返回的是XHR对象,你没法进行链式操作;如果高于1.5.0版本,返回的是deferred对象,可以进行链式操作...; }) .fail(function(){ console.log("出错了!"); }); 上述示例中,提及到了deferred.resolve()。...如果执行状态是”已完成”(resolved),deferred对象立刻调用done()方法指定的回调函数; 如果执行状态是”已失败”,调用fail()方法指定的回调函数; 如果执行状态是”未完成”,则继续等待...但是作为JavaScript忍者,我们是不允许这样抒写的,因为dtd是一个全局变量,它的执行状态可以从外部改变。
但是随着react,vue等前端框架的兴起,jquery早已不复当年之勇。很多情况下我们只需要使用ajax,但是却需要引入整个jquery,这非常的不合理,于是便有了fetch的解决方案。...在MDN上,讲到它跟jquery ajax的区别,这也是fetch很奇怪的地方: 当接收到一个代表错误的 HTTP 状态码时,从 fetch()返回的 Promise 不会被标记为 reject, 即使该...HTTP 响应的状态码是 404 或 500。...相反,它会将 Promise 状态标记为 resolve (但是会将 resolve 的返回值的 ok 属性设置为 false ), 仅当网络故障时或请求被阻止时,才会标记为 reject。...优缺点: 符合关注分离,没有将输入、输出和用事件来跟踪的状态混杂在一个对象里 更好更方便的写法 更加底层,提供的API丰富(request, response) 脱离了XHR,是ES规范里新的实现方式
什么是Ajax?...status属性:服务器(请求资源)的状态 http状态码 返回的内容 responseText:返回以文本形式存放的内容 responseXML...:返回XML形式的内容 * readyState:ajax工作状态 responseText:ajax请求返回的内容就被存放到这个属性下面 * */ xhr.onreadystatechange...t=new Date() 二、 POST 方式请求 浏览器认为Post的提交必然是有改变的 所以一般post请求 不会从缓存中去数据 三、 jQuery中的有设置缓存的开关 不管是哪中方式请求 我们可以设置缓存开关...).ready(function () { $.ajax({ type: "get", //jquey是不支持post方式跨域的 async: false,
大家好,又见面了,我是你们的朋友全栈君。 1:什么是ajax?ajax作用是什么? 异步的javascript和xml AJAX 是一种用于创建快速动态网页的技术。...一: 2开头状态码 2xx (成功)表示成功处理了请求的状态代码 200 (成功) 服务器已成功处理了请求。 通常。 二: 3开头状态码 3xx (重定向) 表示要完成请求,需要进一步操作。...三: 4开头状态码 4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理 1:400 (错误请求) 服务器不理解请求的语法。 2:403 (禁止) 服务器拒绝请求。...3:404 (未找到) 服务器找不到请求的网页。 四: 5开头状态码 5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。...这些错误可能是服务器本身的错误,而不是请求出错 500 (服务器内部错误) 服务器遇到错误,无法完成请求。 501 (尚未实施) 服务器不具备完成请求的功能。
背景知识介绍 01 - 背景知识引入 我们知道,在没有ajax技术之前,客户端若要与服务端进行数据交互,它的大概流程是:客户端发起一个http请求(也可能是其他的请求)然后处于等待状态,等到服务端将数据发送给客户端...其实缓存在chrome中也不是特别严重,但是大家也都知道世界上有一个东西叫做IE6,我们还是得再某些情况下清一下缓存的,一句话说缓存的工作原理就是:它是根据url缓存的,换句话说,对于同一个url只缓存一次...举个栗子: 在Windows系统下,打开默认的记事本,输入联通两个字,保存之后,关闭记事本应用程序,重新打开,就会看到乱码。当你打开记事本编辑、保存、重新打开的过程中,编码的转化是一个什么过程呢?...在原生ajax代码中,第一个if判断的条件为什么要写成window.XMLHttpRequest而不是直接写成XMLHttpRequest呢?...回调函数是当响应到来时应该在页面中调用的函数,而数据就是传入回调函数中的JSON数据。
AJAX 是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。...在等待服务器响应时执行其他脚本 当响应就绪后对响应进行处理 Async = true 当使用 async=true 时,请规定在响应处于 onreadystatechange 事件中的就绪状态时执行的函数...0: 请求未初始化-对象已建立,但是尚未初始化(尚未调用open方法) 1: 服务器连接已建立-对象已建立,尚未调用send方法 2: 请求已接收- send方法已调用,但是当前的状态及...post方式需要多传入一个data参数,get方式就可以不用,因为参数在url中传的。...//succ是status返回为200后运行的函数。 //failure是status返回不为200后运行的函数。
AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。 AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。...3:开始读取服务器响应 4:读取服务器响应结束 XMLHttpRequest对象有一个onreadystatechange事件,可以监听这五个状态,它会在XMLHttpRequest对象的状态发生变化时被调用...,第二个为状态信息,success或者是error,第三个就是XMLHTTPRequest对象,众多信息都存放在对象中 至于$.get,基本和post相同,只是传送的数据可以加到url后,一般还是把要传送的数据放到...:Function 表示对ajax返回的数据进行预处理,有data和type两个参数,data为返回的原始数据,type为datatype参数,比如收到的是json类型,那么在预处理中tmp = JSON.parse...数字 (整数或浮点数) 字符串 (在双引号中) 逻辑值 (true 或 false) 数组 (在方括号中) 对象 (在花括号中,引号用双引) null json字符串中的引号都为双引号 js中的JSON.parse
为什么要用AJAX?...看完了这些说明,我们解释一下定义中的两个重点概念:(排版出错,以下英文可忽略,无任何影响)AJAX is Based on Open Standards AJAX is based on the following...答案是:在 send 的方法中作为参数进行传递,发往服务器 (三) AJAX 发送请求 xhr.send(); (1) GET 方式请求的格式: xhr.send(null); 使用 GET 方式还是比较简单的...=3 求正在处理中:浏览器与服务器建立通信之后,但服务器未完成响应之前 readyState=4 求已完成:请求完成后,并且已从服务器完全接收到响应数据 状态码 解释 200 请求成功 302 请求重定向...,并且我们对 AJAX 有了一定的认识,但是 AJAX 的一些应用场景,以及AJAX 如何搭配 常见的 如 JSON 等数据格式,实现前后端的交互,并没有提到,我们就放到后面说,将全部的内容挤到一起,无论是从篇幅或者说内容的针对性都是不够强的
本地环境简单搭建 为什么要环境搭建 因为Ajax是基于服务器来运行的,需要配置服务器环境来实现对本地资源的访问。...****) 如何使用VsCode自带的服务器环境 在VSCode中下载 Live Server插件 在vsCode下方会出现这样的图标,运行带有Ajax请求的文件时,直接点击该图标运行 本环境自动以打开的本文件夹作为服务器的根目录...,端口可以自行改变 jQuery中的Ajax GET请求和POST请求的异同 相同点: 都是将数据提交到远程服务器 不同点: 1....-- 1.什么是Ajax? AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。...ajaxTest.json", true); // 3.发送请求 xmlhttp.send(); // 4.监听状态的变化
Ajax是一种可以与服务器交换数据并更新部分页面内容,同时可以在不让整个网页重新加载的情况下更新网页的一种技术 Ajax请求过程: 1:创建一个异步对象 var xmlHttp = new XMLHttpRequest...,因此还需判断是否请求成功 //status是专门判断请求是否成功的状态码 // 状态码大于或等于200并且不能超过300以上,300以上除了304以外全都是请求失败...+(new Date().getTime()),true) 解决兼容性通用方法 由于在Ajax中浏览器支持的属性不同,单一方案不能支持全部浏览器,有两种解决方案,因此可以把这两种方案合成一种,以便使用...但是对象和数组是比较特殊且常用的两种类型: //JSON 键/值对 //JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号 "" 包裹...,会把请求数据自动处理为适合发送的数据格式,但是formdata对象本事就不用处理,系统识别会自动处理数据,如果被jq格式化后,数据就会出错,所以要关闭其数据格式化,以及发送的头部信息。
一、Promise 1、概述 Promise 是 ES6 引入的异步编程的新解决方案。...if(xhr.readyState == 4){ // 判断响应状态码 200-299 if(xhr.status>=200 && xhr.status<=299){...if(xhr.readyState == 4){ // 判断响应状态码 200-299 if(xhr.status>=200 && xhr.status中返回的结果是 非promise 类型的数据, // 状态为成功,返回值为对象的成功值resolved // [[PromiseStatus]]:"resolved"...// [[PromiseValue]]:123 // return 123; // 2、如果...是promise类型的数据 // 此Promise对象的状态决定上面Promise
注:不知道为什么URL写绝对路径在FF下会出错,知道的麻烦告诉下。下面的get()和post()示例使用的是绝对路径,所以在FF下你将会出错并不会看到返回结果。...callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。 这是一个简单的 GET 请求功能以取代复杂 .ajax 。...this; // 在这里this指向的是Ajax请求的选项配置信息,请参考下图 alert(data); //alert(textStatus);//请求状态:success,error...callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。...,它会向DOM中的所有元素广播,在上面 getScript() 示例中加载的脚本就是全局Ajax事件。
大家好,又见面了,我是你们的朋友全栈君。 这篇文章主要为大家详细介绍了完美解决ajax跨域请求下parsererror的错误,具有一定的参考价值,可以用来参考一下。...ajax请求报parsererror错误是很宽泛的概念,很多情况下都报这个错, 在很多时候,即使ajax提交、返回都正常 XMLHttpRequest.status=200 (正常响应) XMLHttpRequest.readyState...在使用ajax,以及相关应用开发过程中,一定要按标准写程序,可以减少出错的机率....跨域请求(jsonp)中,服务端返回数据格式必须是: myCallbackFunction({“id”:1,”name”:”C#”,”is_familiar”:true}); 请注意这个函数最后的分号”...这种错误很隐敝,在开发时,不容易发现,在并发测试时,就很容易暴露出. (512笔记 512pic.com) 注:关于完美解决ajax跨域请求下parsererror的错误的内容就先介绍到这里,更多相关文章的可以留意
1 AJAX基本概述 AJAX是一门很重要的技术,主要作用就是增强用户的体验。AJAX全名为:ASynchronous JavaScript And XML,异步的JavaScript和XML。...借用百度百科的AJAX概念如下: Ajax是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。...【练习案例】: 1)在一个html页面中点击按钮,发送请求至AjaxServlet,在该Servlet中打印请求的信息; 2)为了演示AJAX异步的效果,在AjaxServlet中获取请求参数后,加5s...if(xmlhttp.readyState==4 && xmlhttp.status == 200){ //请求已完成且响应就绪,响应状态码为200...$.ajax异步方式请求,html中的代码简洁的太多!
这里教大家怎么用 AJAX上传和php上传 上传文件的必要参数 "Cache-Control": "max-age=2592000", "Content-Disposition": "...file 参数就可以了,file就是你要上传的文件,还需要加一个请求头 {"X-OSS-server-side-encrpytion":"AES256"} AJAX 上传 ajax 就是前端上传文件...X-OSS-server-side-encrpytion":"AES256"},//要加这个请求头 success(res){ //上传完文件是没有返回实际内容的...,但是返回的状态码是200 console.log('上传完成,url:' + url) //上传完成后还需要设置上传完成...,请检查秘钥信息 echo '//获取上传信息出错了,请检查秘钥信息'; }
大家好,又见面了,我是你们的朋友全栈君。 ajax异步请求详解ajax ajax定义:异步的JavaScript和xml浏览器 一、建立对象,XMLHttpRrquest的出现才有了异步处理。...服务器 XMLHttpRrquest是AJAX的基础异步 全部的现代浏览器均支持XMLHttpRrquest对象(IE5和IE6使用ActiveObject)async XMLHttpRrquest用于在后台与服务器交换数据...这意味着能够在不从新加载整个网页的状况下,对网页的某部分进行更新。...将请求发送到服务器 3.浏览器与服务器创建链接 4.服务器响应 readyState 属性表示Ajax请求的当前状态。...响应发送完毕 经常使用状态码及其含义: 404 没找到页面(not found) 403 禁止访问(forbidden) 500 内部服务器出错(internal service error) 200
(后面会有http状态码的详细解读) 三.JQuery中的Ajax JQuery对原生Ajax做了很好的封装,使用起来非常简单方便,具体的很多方法如 $.ajax,$.post, $.get, $.getJSON...作为Ajax最常用的两种数据提交方式,GET和POST有着自己的特点和适用场景,正确区分GET和POST的不同并根据实际需要进行选用在开发中十分重要,简单但是关键! ?...从表格中拎出关键点: 1.传递数据的方式不同:get是直接把请求数据放在url的后面,是可见的,post的请求数据不会显示在url中,是不可见的。...(状态码404、403、301、302...都会进入complete,只要不出错就会调用) 六.XML -> JSON Ajax中的是 "x" 指的就是XML。...跨域访问时一个很重要的知识点,之前专门写过一篇关于跨域访问的总结,还挺详细的,可以移步查看: javascript中实现跨域的方式总结 九.再议HTTP状态码 前面提到的"200"、"404"只是http