Tag: xmlhttprequest

是否可以从beforeSend回调中修改XMLHttpRequest数据?

是否可以通过修改beforeSend回调中的XMLHttpRequest对象来修改Ajax请求中发送的数据? 如果是的话,我该怎么做?

如何在jQuery 1.5中获取纯XMLHTTPRequest对象?

我的代码在jquery 1.4中工作正常,我尝试将其升级到1.5。 但是这部分代码停止工作 – 它的标准beforeSend处理程序 beforeSend: function (xhr, options) { // __forced_abort = false; // xhr.upload.addEventListener(‘progress’, on_progress, false); xhr.upload.addEventListener(‘load’, on_loaded, false); xhr.addEventListener(‘abort’, on_abort, false); …. 我知道在1.5还没有真正的xhr – 只是jqXHR高级抽象,似乎是jqXHR没有上传属性。 问题:如何在jQuery 1.5中获得纯(旧)xhr对象?

Ajax:如何防止jQuery在执行xmlHttpRequest.abort()之后调用success事件;

使用jQuery的$ .ajax()函数。 如果请求被故意中止,或者如果服务器关闭(没有响应),则会出现相同的结果; 也就是说,在xmlHttpRequest.status = 0和xmlHttpRequest.readyState = 4的情况下触发“成功”处理程序。 (我通过关闭IIS模拟失败的请求,然后针对已经“关闭”的网站执行xmlHttpRequest) 所以我的问题是如何确定中止请求或由于服务器没有响应而导致真正失败的请求(因为服务器可能已关闭)之间的区别,因为两种情况似乎都给我相同的状态/ readyState? 编辑更准确我想知道如何在ajax上调用.abort()函数后阻止调用“success”处理程序。 我已经重新措辞,以反映这一点。

捕获XMLHttpRequest跨域错误

有没有办法在发出请求时捕获由Access-Control-Allow-Origin引起的错误? 我正在使用jQuery,并且在.ajaxError()设置的处理程序永远不会被调用,因为请求永远不会开始。 有没有解决方法?

使用XMLHttpRequest上传大文件时的进度条

我正在尝试使用XMLHttpRequest和file.slice将一些大文件上传到服务器。 我已经在文档和其他各种链接的帮助下完成了这项工作。 由于上传大文件是一项很长的工作,我想为用户提供一个进度条。 经过一些更多的阅读后,我遇到了一个例子 ,从理论上讲,它完全符合我的需要。 通过获取示例代码并使其适应我的需求,我达到了 var upload = { blobs: [], pageName: ”, bytesPerChunk: 20 * 1024 * 1024, currentChunk: 0, loaded: 0, total: 0, file: null, fileName: “”, uploadChunk: function (blob, fileName, fileType) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState == 4) { if (xhr.responseText) { // […]

了解跨域XHR和XML数据

我一直在使用JavaScript和AJAX很长一段时间,我想了解Cross Domain XHR如何真正起作用以及JQuery如何处理它,出于某种原因我从来没有想过要考虑它是如何工作的。 我读过维基百科JSONP文章,我更困惑。 我不确定我不理解的是什么。 我知道使用JSONP我可以直接在JavaScript中使用JSON数据。 例如这个JS Fiddle的例子 。 这里我使用JSON来显示图像列表。 我可以使用XML数据来实现相同的function吗? 在回答这部分问题之前,请先阅读其余的类比。 1)如果我尝试下面的内容或小提琴链接我得到错误Uncaught ReferenceError: jsonFlickrFeed is not defined ​$.ajax({ url: “http://api.flickr.com/services/feeds/photos_public.gne”, data: { format: “json” }, dataType: “jsonp”, success: function(d) { console.log(d); } });​ 2)下面的示例或小提琴链接工作正常 $.ajax({ url : “http://api.flickr.com/services/feeds/photos_public.gne”, data: {format: “json”}, dataType: “jsonp” }); jsonFlickrFeed = function(d){ console.log(d); } 问)我认为在1和2之间,因为返回的数据的格式类似于jsonFlickrFeed({})我们需要编写jsonFlickrFeed回调函数才能使其工作? 问)为什么它永远不会调用成功回调? 问)Flickr端点是否能完成返回JSONP的工作(我的意思是jsonFlickrFeed({})格式的数据)? 或者只是返回实际的JSON和JQuery pad呢? […]

XMLHttpRequest – SEC7127:为CORS请求阻止了重定向

我在IE11第一次访问我们的网页时遇到错误。 它适用于我的计算机上的Chrome,但不适用于其他开发人员的计算机。 但是在所有情况下刷新页面时它都有效。 错误是 SEC7118:XMLHttpRequest for https://secure.server.com/esi?isie789=n&_=1403623253418需要跨源资源共享(CORS)。 SCRIPT7002:XMLHttpRequest:网络错误0x2ef1,由于错误00002ef1无法完成操作。 SEC7127:针对CORS请求阻止了重定向。 它是使用Ajax jquery调用的。 $.ajax({ url: esiUrl, type: ‘GET’, data: “isie789=” + isIE789, dataType: ‘html’, cache: false, success: function(responseText) { if(responseText.length > 0) { $(“#deal-of-day-esi”).replaceWith(responseText); } }, error: function() { } }); 在IE11中查看请求/响应标头 – 我没有看到任何标头。 但是在刷新或Chrome浏览器中,我们确实会看到带有以下值的响应标头 Access-Control-Allow-Credentials:true Access-Control-Allow-Origin: http : //www.server.co.uk 你能帮忙吗?

为什么这个jQuery AJAX PUT在Chrome中工作但不在FF中工作

在Chrome中,它会像它应该的那样执行HTTP PUT,但在FireFox 21中却没有。 javascript控制台或后端没有错误。 这是HTML: Building a new team Team Name: Does this team work for a business? Business Size: Nope, I work alone2 to 4950 to 99100 to 9991,000+ Business Location: Industry: Create × 这是jQuery: $(“#createTeamButton”).click(function () { var teamObject = new Team(); teamObject.description = $(“#teamName”).val(); teamObject.businessSize = $(“#businessSizeSelect”).val(); teamObject.businessType = $(“#businessTypeSelect”).val(); teamObject.businessLocation = […]

JQuery在Chrome中停止和等待ajax请求

偶尔,我的应用程序中的Ajax调用(通过JQuery 1.8)长时间处于待处理状态(有时长达17分钟)。 我用谷歌搜索了所有可能的解决方案都没有用: 我没有安装广告拦截器。 我已禁用Chrome中的“预测网络操作以提高页面加载性能”标志。 我还在Ajax调用中添加了一个查询字符串,使其独一无二(禁用任何Chrome缓存锁定)。 你知道如何解决这个问题吗? 谢谢。 在下面的示例中,请求等待了17分钟(与Fiddler确认它仅在17分钟后发送)。 GET http://www.mywebsite.com/foo/rest/publishers/1/packages?_=1421584749323 HTTP/1.1 Host: www.mywebsite.com Connection: keep-alive Accept: application/json, text/javascript, */*; q=0.01 X-Requested-With: XMLHttpRequest User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 Content-Type: application/json Referer: http://www.mywebsite.com/foo/client/home Accept-Encoding: gzip, deflate, sdch Accept-Language: en-US,en;q=0.8,he;q=0.6,ru;q=0.4 Cookie: JSESSIONID=C668509B5AFCDEBE9C9774C4721AFB9D; aaassz=”ddss” 看图:

jQuery AJAX在窗口卸载时触发错误回调 – 如何过滤掉卸载并仅捕获真正的错误?

如果我离开$ .ajax()请求中间的页面,则会触发错误回调。 我已经在Safari和FF中测试了GET和POST请求。 一个可能的解决方案是在页面卸载时中止所有AJAX请求,但是在卸载之前调用error handling程序,所以这似乎不可能。 我希望能够通过礼貌警报或modal dialog在客户端优雅地处理诸如500s之类的REAL错误,但我不希望在用户离开页面时调用此处理。 我该怎么做呢? – (也很奇怪:当离开页面时,error handling程序会说textStatus参数是“error”,与接收500 /错误请求时抛出的相同。)