我正在尝试捕获ajax请求的进度。
它没有按预期工作。据我所知,id为 progressProdCounter的 Div
应该在其中包含%的内容,但在我的情况下什么也没有发生。有帮助吗? __
在我看来,这if (evt.lengthComputable) {
是行不通的XHR
HTML:
<div id="progressCounter"></div><br>
<div id="loading">Loading</div><br>
<div id="data"></div>
JS:
var progressElem = $('#progressCounter');
var URL = "https://api.github.com/users/mralexgray/repos";
$("#loading").hide();
// write something in #progressCounter , later will be changed to percentage
progressElem.text(URL);
$.ajax({
type: 'GET',
dataType: 'json',
url: URL,
cache: false,
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.responseText);
alert(thrownError);
},
xhr: function () {
var xhr = new window.XMLHttpRequest();
//Download progress
xhr.addEventListener("progress", function (evt) {
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
progressElem.html(Math.round(percentComplete * 100) + "%");
}
}, false);
return xhr;
},
beforeSend: function () {
$('#loading').show();
},
complete: function () {
$("#loading").hide();
},
success: function (json) {
$("#data").html("data receieved");
}
});
ProgressEvent.lengthComputable只读属性是一个布尔型标志,指示ProgressEvent相关的资源是否具有可以计算的长度。如果不是,则ProgressEvent.total属性没有重大价值。
因此,在您的情况下,如果您进行一点调试,您将发现evt.lengthComputable = false;
您无法跟踪进度;
xhr.addEventListener("progress", function (evt) {
console.log(evt.lengthComputable); // false
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
progressElem.html(Math.round(percentComplete * 100) + "%");
}
}, false);
如果lengthComputable
中的false为XMLHttpRequestProgressEvent
,则表示服务器从不发送Content- Length header
响应。
问题内容: 通过XHR请求下载pdf文件是否完全不可能?我知道已经有许多关于此主题的讨论,但可悲的是,我仍然对它们不满意。我正在使用AngularJs并使用其方法发出请求。它不返回任何文件下载弹出窗口。但是,如果在新的“浏览器窗口”中使用相同的URL进行点击,则会弹出一个窗口。我已经尝试了一个工作环境,并且可以正常工作,但是如果执行此操作,那么在下载弹出窗口准备就绪并出现之前,我无法显示等待的图像
问题内容: 我有一个使用服务器上的nodejs和socket.io作为连接机制的客户端/服务器应用程序。出于与我的应用程序相关的原因,我希望每个浏览器只有一个活动连接,并拒绝来自其他选项卡的所有连接,这些选项卡可能在会话期间稍后打开。这在WebSockets上很好用,但是如果浏览器不支持WebSockets,而是使用XHR- polling,则断开连接永远不会发生,因此,如果用户只是刷新页面,则不
现在我正在学习Spring靴。 时间戳:“2020-12-09T09:22:27.095+0000”,状态:400,错误:“Bad request”,消息:“Required request body is missing:public java.util….login.loginctr.login(org.json.simple.jsonObject)”,跟踪:“org.springframew
跨域 XMLHttpRequest 请求 普通网页能够使用XMLHttpRequest对象发送或者接受服务器数据, 但是它们受限于同源策略. 扩展可以不受该限制. 任何扩展只要它先获取了跨域请求许可,就可以进行跨域请求。 注意:页面内容脚本不能直接发起跨域请求. 然而, 任何一个页面内容脚本都可以发送消息给父扩展,请求父扩展发起一次跨域请求。关于使用这一技术的例子,请参照contentscript
This tiny plugin provides a registry for different xhr implementations to co-exist. It requires jQuery 1.3/1.2.7 with its new feature, the 'xhr' ajax setting. If you want to provide a new implementati
问题内容: 我正在尝试加载使用Backbone构建的Web应用程序,它会提取本地存储的JSON和HTML模板文件。我想知道Chrome打包的应用程序是否可以通过某种“获取” / ajax请求来加载这些文件? 目前我正在得到这个… 我找不到有关如何执行此操作的任何真实信息,因此非常感谢您! 问题答案: 是的,这是完全可能的,而且很容易。这是一个工作示例。尝试从此开始,确认它可以工作,然后重新添加您自