(event) { console.log("load end"); }; // 发起ajax请求传送数据 xhr.open("POST", "/upload", true); xhr.send(formData...(res) {}, error: function () {}, }); 这里要说的就是 formData ,这个狗屎在 IE10 之后才开始完整的支持,IE9 吖的是个半残品。...所以这要说的是第三种结合 form 和 iframe 来实现,原理: 隐藏的 form 和 iframe , form 的 target 指向 iframe ,监听 iframe load ,来获取上传结果...xhr.responseType = "blob"; // 返回类型blob // 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑 xhr.onload = function...} 优点:支持 post 方式 缺点:还是该死的兼容性问题 所以处理兼容性最好的方式 还是 form 结合 iframe (不考虑兼容性当然还是 XMLHttpRequest 最好) ,这种方式不论是上传和下载
3、第三方引擎推荐 第三方引擎的实现方式为基于 bricks 的 webGL 接口进行封装,具有较高的灵活性,但渲染性能会欠缺。 如开发者对性能要求更高,推荐使用bricks引擎的原生渲染。...就像大家讨论Java是世界最好的语言一样。 世界上没有不出bug的程序,引擎或者IDE都或多或少存在一定的Bug以及局限性。请根据项目需求以及当下的环境酌情选择。...从现在的技术发展讨论egret和cocos的优缺点H5方面 小程序游戏选择 egret, cocos Creator 还是 layabox? 开发H5游戏引擎的选择:Egret或Laya?...,有什么样的创意和玩法可以期待一下。...function post(url, data, callBack) { log("请求参数:" + data); var xhr = new XMLHttpRequest();
3、第三方引擎推荐 第三方引擎的实现方式为基于 bricks 的 webGL 接口进行封装,具有较高的灵活性,但渲染性能会欠缺。 如开发者对性能要求更高,推荐使用bricks引擎的原生渲染。...从现在的技术发展讨论egret和cocos的优缺点H5方面 小程序游戏选择 egret, cocos Creator 还是 layabox? 开发H5游戏引擎的选择:Egret或Laya?...,有什么样的创意和玩法可以期待一下。...*/ function post(url, data, callBack) { log("请求参数:" + data); var xhr = new XMLHttpRequest();...("POST", url, true); xhr.send(data); } /** * get请求 * @param {*} url * @param {*} data * @param
= new XMLHttpRequest(); xhr.open('GET', url, true); // 也可以使用POST方式,根据接口 xhr.responseType...= "blob"; // 返回类型blob // 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑 xhr.onload = function () {...// 请求完成 if (this.status === 200) { // 返回200 var blob = this.response...xhr.send() } 注:此代码只是个人根据当时的环境满足了当时的需求,记录下来用做后续参考!...如有问题,请检查软硬件环境是否一致,由于时间精力有限,大部分未做详细环境描述。
,音频播放器 复制代码 十五.ajax和comet // ajax var xhr = new XMLHttpRequest(); // 创建xhr对象 // 第一个方法:open(get | post...(null); // 在接收到响应之前还可以取消异步请求 xhr.abort() // 在停止请求之后还应该进行解引用操作,防止内存堆积 // 设置http请求头,必须放在open和send中间 xhr.open...: "&"); url += encodeURIComponent(name) + "=" + encodeURIComponent(value); } // post请求:模拟表单提交 xhr.open...[0]); //使用FormData的好处在于不必明确地在xhr上设置请求头部 xhr.send(new FormData(form)); // 进度事件 loadStart/progress/error.../abort/load // 跨域资源共享CORS 核心思想:使用自定义的http头部让浏览器和服务器进行沟通,从而决定请求是成功还是失败 原理: 1.请求头指定源:Origin: http://www.baidu.com
加载更多的插件 可实现下拉加载更多图标显示 $ npm install vue-lazyload -D 在main.js中写入 import Vue from 'vue' import App from...获取文件路径 出于安全性的考虑,低版本IE上传文件时屏蔽了真实的本地文件路径, 以C:\fakepath\**取而代之, 所以默认情况下通过...= new XMLHttpRequest() xhr.open(opts.method, url, true) xhr.responseType = 'blob' var formData...,请求前也可以增加加载框/禁用下载按钮逻辑 xhr.onload = function () { // 请求完成 console.log('this', this...; } } // 发送ajax请求 xhr.send(formData) } 16.
Apache Commons Upload Servlet 2.x 环境自身无法方便的处理文件上传请求,第三方工具 Apache Commons Upload 则是最好的选择。...Cookie 在 Safari 环境下不能正常发送; 图:官方对 Session Cookie 问题的说明 ? ?...优点:功能强大、灵活、定制性强 老古董(IE7/8/9): × 传统浏览器环境中,不支持 Ajax 文件上传; 现代浏览器(>=IE10、Chrome、Firefox): a. √ 支持上传完成回调机制...console.log(xhr.responseText); }, false); xhr.open("POST", "....; }, false); xhr.open("POST", ".
一、老版本的XMLHttpRequest对象 在介绍新版本之前,我们先回顾一下老版本的用法。 首先,新建一个XMLHttpRequest的实例。 ...* 传送和接收数据时,没有进度信息,只能提示有没有完成。 * 受到"同域限制"(Same Origin Policy),只能向同一域名的服务器请求数据。...; } 目前,Opera、Firefox和IE 10支持该属性,IE 8和IE 9的这个属性属于XDomainRequest对象,而Chrome和Safari还不支持。...('POST', form.action); xhr.send(formData); 六、上传文件 新版XMLHttpRequest对象,不仅可以发送文本信息,还可以上传文件。...var blob = new Blob([xhr.response], {type: 'image/png'}); 注意,是读取xhr.response,而不是xhr.responseText。
实现小文件整体上传 搭建前端环境 通过create-react-app --template typescript创建项目 引入antdyarn add antd然后yarn start运行项目 编写上传的组件...} else { reject(xhr.response); } } } xhr.send(config.data); }) } 搭建服务端环境...(将所有小文件存放到临时目录) 客户端上传所有分片文件后,调用请求合并的接口。 服务端提供合并接口。(按上述已排序的文件名进行合并,合并成大文件后存放本地) 客户端提供暂停/恢复功能。...客户端对分割后的小文件依次调用接口上传。 客户端上传所有分片文件后,调用请求合并的接口。...在服务端读取上传分片情况,客户端上传时再次借助Blob.slice(part.loaded)。
可见在websocket连接建立之前多出了3个xhr请求,而websocket连接建立失败后又多出了几个xhr请求,同时最后两个xhr请求失败了。...第二、三个请求用于确认连接,在socket.io中,post请求是客户端发送消息给服务端的唯一形式,而且post响应一定是“ok”,它的“content-length”一定为2;而get请求主要用于轮训...,同时获取服务端的相关消息,这会在下文中有体现; 第四个websocket连接请求失败,这主要是由于与后端http握手失败造成的; 第五个请求为xhr方式的post请求,它是作为websocket通道建立失败后的一种兼容性处理...,上文讲述了socket.io的post请求只在客户端需要发送消息给服务端时才会使用,因此,为了证实我们查看消息体: ?...这样只要是服务端渲染的页面都可以采用这种方式实现。 如果页面采用前端异步渲染,仍可以采用这种方式,不过首先通过xhr请求向服务端获取需要握手的http服务器的ip和端口,然后在进行ws连接。
,并将视频源转为blob对象 //创建XMLHttpRequest对象 var xhr = new XMLHttpRequest(); //配置请求方式、请求地址以及是否同步...xhr.open('POST', '/armystudy/blob/getVideoSrc', true); //设置请求结果类型为blob xhr.responseType = 'blob...'; //请求成功回调函数 xhr.onload = function(e) { if (this.status == 200) {//请求成功...fis.available()]; fis.read(buffer); httpServletResponse.reset(); //5.由于火狐和其他浏览器显示名称的方式不相同...,需要进行不同的编码处理 if(agent.indexOf("FIREFOX") !
跨域资源共享(Cross-Origin Resource Sharing)是W3C的一项规定,它规定了在浏览器中,基于XMLHttpRequest对象的跨域请求通信的原理,基本上保持了原有对象的用法。...) onloadstart*(请求开始发送) onprogress(加载和发送数据中) onabort*(实例abort方法被调用) onerror(请求失败) onload(请求成功) ontimeout...(请求超时) onloadend(请求完成,不管失败还是结束) // 通常我们处理最多的就是 xhr.onload = function() { var responseText = xhr.responseText...默认情况下,标准的CORS请求是不会发送任何cookie信息的。...(A term by Monsur Hossain) 不符合(1)中的条件的请求 浏览器如Chrome, Firefox等会在不太简单的CORS请求发送前,为安全性考虑先发送一条”preflighted
),比如a.com有b.com想要的数据,那么在b.com页面中发送ajax请求到a.com是不允许的,相信大家都知道一些跨域通信的实现方法: JSON-P(安全性不好) window.name + iframe...跨域资源共享(Cross-Origin Resource Sharing)是W3C的一项规定,它规定了在浏览器中,基于XMLHttpRequest对象的跨域请求通信的原理,基本上保持了原有对象的用法。...) onloadstart*(请求开始发送) onprogress(加载和发送数据中) onabort*(实例abort方法被调用) onerror(请求失败) onload(请求成功) ontimeout...(请求超时) onloadend(请求完成,不管失败还是结束) // 通常我们处理最多的就是 xhr.onload = function() { var responseText = xhr.responseText...默认情况下,标准的CORS请求是不会发送任何cookie信息的。
发送 POST 其实很简单可以在之前发送 GET 请求的基础上进行更改一些内容即可进行发送 POST 请求了:官方文档地址:https://www.w3school.com.cn/js/js_ajax_http_send.asp...xhr.open("POST", "ajax-post.php", true); // 注意点: 以下代码必须放到open和send之间 xhr.setRequestHeader...>本文不涉及然和的介绍和其它的相关内容,只是博主简单的记录一下封装 POST 的代码:myAjax.js:const obj2str = (obj) => { // 如果没有传参, 为了添加随机因子.../* method:请求的类型;GET 或 POST url:文件在服务器上的位置 async:true(异步)或 false(同步) */ if (type ==...get 与 post 可以大小写都可以进行请求,看了如上 jQuery 当中的 ajax 方法之后然后我们再来看看我们自己封装的 ajax 试着与 jQuery 当中的 ajax 的特点去试着发送请求看一下
send 用于发送 HTTP请求,即调用该方法后 HTTP请求才会被真正发出,用法: xhr.send(param) param:http请求的参数,可以为 string、Blob等类型。...这种 GET或 POST请求中 URL参数里的 "callback"部分。 error 类型: Function 。请求失败时调用此函数。...注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)"json": 返回 JSON 数据 。"...键值对这样组织在一般的情况下是没有什么问题的,这里说的一般是,不带嵌套类型 JSON,也就是 简单的 JSON,形如这样: { a: 1, b: 2, c: 3} 但是在一些复杂的情况下就有问题了...另外, axios同样提供了在 node环境下的支持,可谓是网络请求的首选方案。
编辑并重新发送网络请求 在 Web 开发中,我们可能要频繁调试网页上的请求,可能我们需要改动一个很小的参数,然后被迫重启一遍项目或者等待热更新,其实使用 Devtools 的重新发送请求的功能会很方便。...Edge 和 Firefox 的 Devtools 都提供了编辑并重新发送网络请求的功能(Chrome 在最近的版本中也在尝试提供类似的能力,不过只能覆盖 Header ,体验并不是很好) 比如,在 Edge...,也可以直接在 Chrome 或 Edge 的 DevTools 中点击 Replay XHR ,注意这个功能只能对 XHR 请求使用,不适用于 Fetch 或其他请求。...如果你可能经常会用到这个功能,可以把它粘贴到 Sources 下的 Snoppets 下: 4....切换 Devtoos 语言 一般情况下 Devtools 都会继承操作系统当前选择的默认语言,但是 Devtoos 上的翻译有时候真的挺别扭的,在 Safari 、 Chrome 或 Edge 中,我们都可以在
axios在浏览器端使用XMLHttpRequest对象发送ajax请求;在node环境使用http对象发送ajax请求。...原来作者是通过判断XMLHttpRequest和process这两个全局变量来判断程序的运行环境的,从而在不同的环境提供不同的http请求模块,实现客户端和服务端程序的兼容。...,是异步的 JavaScript 和 XML,可以在无需重新加载整个网页的情况下,更新部分网页内容的技术。是用于创建快速动态网页的技术。...XMLHttpRequest对象的responseXMl属性 XMLHttpRequest对象在IE和Firefox中创建方式有没有不同 有,IE6以下中通过new ActiveXObject()得到,...Firefox中通过newXMLHttpRequest()得到 介绍一下XMLHttpRequest对象的常用方法和属性 open(“method”,”URL”) 建立对服务器的调用,第一个参数是HTTP
一.GET与POST 在提供服务器请求的过程中,有两种方式,分别是:GET和POST。在Ajax使用的过程中,GET的使用频率要比POST高。...在了解这两种请求方式前,我们先了解一下HTTP头部信息,包含服务器返回的响应头信息和客户端发送出去的请求头信息。我们可以获取响应头信息或者设置请求头信息。...我们可以在Firefox浏览器的firebug查看这些信息。...POST请求 POST请求可以包含非常多的数据,我们在使用表单提交的时候,很多就是使用的POST传输方式。...因为POST请求和Web表单提交是不同的,需要使用XHR来模仿表单提交。
,如果你用默认表单提交上传文件的话就得在form上面设置这个属性,因为上传文件只能使用POST的这种编码。...常用的POST编码是application/x-www-form-urlencoded,它和GET一样,发送的数据里面,参数和参数之间使用&连接,如: key1=value1&key2=value2 特殊字符做转义...,这个数据POST是放在请求body里的,而GET是拼在url上面的,如果用jq的话,jq会帮你拼并做转义。...(成功或者失败)之后就会触发iframe的onload事件,然后在onload事件获取返回的数据,如果请求失败了的话,iframe里的内容就为空,可以用这个判断请求有没有成功。...事件在event.clipboardData.files里面,Safari这个怪胎是在编辑器里面插入一个src指向本地的img标签,可以通过发送一个请求加载本地的blob数据,然后再通过FileReader
和formData打印出来是这样的: 可以看到文件的路径是一个假的路径,也就是说在浏览器无法获取到文件的真实存放位置。...常用的POST编码是application/x-www-form-urlencoded,它和GET一样,发送的数据里面,参数和参数之间使用&连接,如: key1=value1&key2=value2 特殊字符做转义...,这个数据POST是放在请求body里的,而GET是拼在url上面的,如果用jq的话,jq会帮你拼并做转义。...会触发表单提交,当请求完成(成功或者失败)之后就会触发iframe的onload事件,然后在onload事件获取返回的数据,如果请求失败了的话,iframe里的内容就为空,可以用这个判断请求有没有成功。...事件在event.clipboardData.files里面,Safari这个怪胎是在编辑器里面插入一个src指向本地的img标签,可以通过发送一个请求加载本地的blob数据,然后再通过FileReader
领取专属 10元无门槛券
手把手带您无忧上云