草庐IT

xmlhttprequest-level2

全部标签

javascript - 中止 XMLHttpRequest 的内部结构(客户端和服务器)

所以我很好奇在中止异步javascript请求时发生的实际底层行为。thisquestion里面有一些相关的信息但我还没有找到任何全面的内容。我的假设一直是中止请求会导致浏览器关闭连接并完全停止处理它,从而导致服务器执行相同的操作(如果已设置)。不过,我想这里可能存在我没有想到的特定于浏览器的怪癖或边缘情况。我的理解是这样的,希望有需要的人指正,希望对以后的人有一个很好的引用。客户端中止XHR请求会导致浏览器在内部关闭套接字并停止处理它。我希望这种行为而不是简单地忽略传入的数据并浪费内存。不过,我并没有在IE上打赌。服务器上的中止请求取决于那里正在运行的内容:我知道PHP的默认行为是在

javascript - jQuery 相当于 XMLHttpRequest 的上传?

使用HTML5的文件API,上传是通过XMLHttpRequest中名为upload的对象进行的。This是我正在使用的教程(以及Googlecachemirror,因为它目前已关闭)。这是相关部分://Uploading-forFirefox,GoogleChromeandSafarixhr=newXMLHttpRequest();//Updateprogressbarxhr.upload.addEventListener("progress",function(evt){如您所见,为了跟踪上传进度,XMLHttpRequest对象有一个名为upload的属性,我们可以为它添加一个事

javascript - Chrome 扩展 : how to pass ArrayBuffer or Blob from content script to the background without losing its type?

我有这个内容脚本,它使用XHR下载一些二进制数据,稍后发送到后台脚本:varself=this;varxhr=newXMLHttpRequest();xhr.open('GET',url);xhr.responseType='arraybuffer';xhr.onload=function(e){if(this.status==200){self.data={data:xhr.response,contentType:xhr.getResponseHeader('Content-Type')};}};xhr.send();...later...sendResponse({data:se

javascript - 使用 XMLHttpRequest 获取单个文件的上传进度

我正在使用XMLHttpRequest(使用jQuery)获取多个文件的上传进度。通过向XMLHttpRequest对象添加“进度”事件监听器,我可以获得event.loaded和event.total。这些变量为我提供了所有文件的加载字节数和总字节数。我想做的是获取每个单独文件的进度,但据我所知,XMLHttpRequest无法提供该信息。是真的吗?我认为这甚至没有必要,但这是我的代码:varxhr=$.ajaxSettings.xhr();if(xhr.upload){xhr.upload.addEventListener('progress',function(event){va

javascript - 第一个 XMLHttpRequest 失败但仅在 IE9 上

我有一个网站,我输入用户名/密码并单击登录按钮。登录按钮创建一个XMLHttpRequest对象,并触发它。在Chrome、Firefox、Opera、Safari、Android设备、iOS设备上,这工作正常。只要我使用HTTP地址而不使用HTTPS,IE9就可以正常工作。在HTTPS上,IE9的行为如下:第一个登录请求永远不会返回任何东西。F12屏幕确实在网络选项卡中显示了我的登录请求,并且一切看起来都是正确的。脚本标签永远不会抛出错误。什么也没有发生。这是疯狂的部分:-如果我第二次点击登录,它确实有效。-如果我在浏览器上单击刷新,然后登录,那也可以!我提出如下要求:varx=ne

javascript - 拦截 XMLHttpRequest 并修改 responseText

我正在尝试构建一个脚本,该脚本将充当nativeXMLHttpRequest对象的代理/包装器,使我能够拦截它、修改responseText并返回到原始onreadystatechange事件。上下文是,如果应用程序尝试接收的数据已在本地存储中可用,则中止XMLHttpRequest并将本地存储的数据传回应用程序的成功/失败回调方法。假设我无法控制应用程序现有的AJAX回调方法。我最初尝试过以下想法..varsend=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(data){//Dosomest

javascript - IE11 在 iF​​rame 的 Ajax POST 操作期间返回状态 0 (XMLHttpRequest : Network Error 0x2ee4)

似乎IE11版本11.0.7(Win7上为KB2929437,Win8.1上为KB2919355)在执行AjaxPOST操作时出现问题。该操作返回状态0,在F12控制台上,出现以下错误:SCRIPT7002:XMLHttpRequest:NetworkError0x2ee4,Couldnotcompletetheoperationduetoerror00002ee4.重现此问题的条件如下:仅在特定的IE11上发生,即版本11.0.7(KB2929437在Win7,Win8.1上的KB2919355)iframe用于加载https协议(protocol)的外部页面(父页面使用http协议

javascript - XMLHttpRequest/ajax 设置内容类型

我分别尝试了这两种方法:注意:url是一个包含httpsurl的变量,jsonString包含一个有效的json字符串varrequest=newXMLHttpRequest();try{request.open("POST",url);request.setRequestHeader('Accept','application/json');request.send(jsonString);}catch(e){alert(e);}和varoptions={type:"POST",url:url,dataType:"json",data:jsonString,accept:"appli

javascript - 如何将数据主体发送到 XMLHttpRequest,看起来像这样?

如何正确设置格式?varparams={"range":"Sheet1!A4:C4","majorDimension":"ROWS","values":[["HelloWorld","123","456"]],}然后使用POST发送它,例如:varxhr=newXMLHttpRequest();xhr.open(method,url);xhr.setRequestHeader('Authorization','Bearer'+access_token);xhr.onload=requestComplete;xhr.send(params);我知道我会遇到错误,因为有一种正确的方法来格式

javascript - Chrome 扩展中的跨源 XMLHttpRequest

根据chrome扩展API,如果设置了权限,则应允许使用XMLHttpRequest对象的跨源调用:Anextensioncantalktoremoteserversoutsideofitsorigin,aslongasitfirstrequestscross-originpermissions.我正在密切关注theGoogletutorial,但下面的代码给我一条错误消息:XMLHttpRequestcannotloadhttp://www.google.com/search?hl=en&q=ajax.Originchrome-extension://bmehmboknpnjgjbm