Javascript Ajax调用使用FTP加载Json文件,需要显示百分比加载进度条
我正在使用jQueryAjax加载保存在FTP服务器中的文件。需要显示正在加载的文件的百分比 以前我有HTTP请求,并且使用XMLHttpRequest有效。下面是有效的代码Javascript Ajax调用使用FTP加载Json文件,需要显示百分比加载进度条,javascript,jquery,json,ajax,ftp,Javascript,Jquery,Json,Ajax,Ftp,我正在使用jQueryAjax加载保存在FTP服务器中的文件。需要显示正在加载的文件的百分比 以前我有HTTP请求,并且使用XMLHttpRequest有效。下面是有效的代码 $.ajax({ xhr: function() { var xhr = new window.XMLHttpRequest(); // Upload progress xhr.upload.addEventListener("progress", function
$.ajax({
xhr: function() {
var xhr = new window.XMLHttpRequest();
// Upload progress
xhr.upload.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = (evt.loaded / evt.total)*100;
var loadPercent = '<div id="fountainTextG">'+Math.round(percentComplete)+'% complete ..</div>';
$(".sqlLoading").html(loadPercent).removeClass("hide");
jsAPP.sqlLoading = true;
}
}, false);
// Download progress
xhr.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete =(evt.loaded / evt.total)*100;
var loadPercent = '<div id="fountainTextG">'+Math.round(percentComplete)+'% complete ..</div>';
$(".sqlLoading").html(loadPercent).removeClass("hide");
jsAPP.sqlLoading = true;
}
}, false);
return xhr;
},
type: 'POST',
url:'ftp://192.168.1.157/pub/1.json',
dataType: "jsonp",
jsonpCallback:"abc",
success: function(obj){
console.log("File loaded successfully");
},
error:function(err,stat,erroT){
$(".page").html("<div class='data_error'> Sorry! No data available for this city.</div>");
}
});
$.ajax({
xhr:function(){
var xhr=new window.XMLHttpRequest();
//上传进度
xhr.upload.addEventListener(“进度”,函数(evt){
if(evt.长度可计算){
var percentComplete=(evt.loaded/evt.total)*100;
var loadPercent=''+数学四舍五入(完成百分比)+'%complete;
$(“.sqlLoading”).html(loadPercent).removeClass(“隐藏”);
jsAPP.sqlLoading=true;
}
},假);
//下载进度
xhr.addEventListener(“进度”,函数(evt){
if(evt.长度可计算){
var percentComplete=(evt.loaded/evt.total)*100;
var loadPercent=''+数学四舍五入(完成百分比)+'%complete;
$(“.sqlLoading”).html(loadPercent).removeClass(“隐藏”);
jsAPP.sqlLoading=true;
}
},假);
返回xhr;
},
键入:“POST”,
网址:'ftp://192.168.1.157/pub/1.json',
数据类型:“jsonp”,
jsonpCallback:“abc”,
成功:功能(obj){
log(“文件加载成功”);
},
错误:函数(err、stat、erroT){
$(“.page”).html(“对不起!没有此城市的可用数据。”);
}
});
但这对FTP请求不起作用。有没有办法在FTP上显示进度加载程序?请帮忙。在我尝试并测试了通过js访问文件的三种方法后,我对这个问题的看法如下
- 尽管XMLHttpRequest声明它支持其他协议,但它 似乎无法访问通过ftp提供的文件
- 当我尝试使用下面的代码访问时,我遇到了一个CORS错误 预料之中
XMLHttpRequest无法加载ftp://ftp.funet.fi/pub/standards/RFC/rfc959.txt. 跨源请求仅支持协议方案:http、数据、chrome、chrome扩展、https、chrome扩展资源。
- FTP服务器似乎不提供访问控制头,这也得到了
- 我尝试使用FTP URL访问该文件,但它抱怨
我传递的参数
var f=新文件(“ftp://ftp.funet.fi/pub/standards/RFC/rfc959.txt“,正确)
- 即使我成功地通过了正确的参数集,
它会抱怨URL的性质,因为它只是
需要服务器/用户计算机提供的路径,如中所述
如果我错了,请纠正我
结论:
- 最后,我想得出结论,这可能是不可能的服务&
使用js从浏览器通过FTP跟踪文件的进度
- 您可能不得不回退到HTTP协议,通过HTTP上的服务器为文件提供服务,以实现您的目标
我已经链接到了我翻阅过的大部分资源——这里还有一些
希望这能有所帮助。在我尝试并测试了通过js访问文件的三种方法后,我对这个问题的看法如下
- 尽管XMLHttpRequest声明它支持其他协议,但它
似乎无法访问通过ftp提供的文件
- 当我尝试使用下面的代码访问时,我遇到了一个CORS错误
预料之中
XMLHttpRequest无法加载ftp://ftp.funet.fi/pub/standards/RFC/rfc959.txt. 跨源请求仅支持协议方案:http、数据、chrome、chrome扩展、https、chrome扩展资源。
- FTP服务器似乎不提供访问控制头,这也得到了
如果您使用的是现代浏览器,则可以使用下载属性(这是一个简单的
- 我尝试使用FTP URL访问该文件,但它抱怨
我传递的参数
var f=新文件(“ftp://ftp.funet.fi/pub/standards/RFC/rfc959.txt“,正确)
- 即使我成功地通过了正确的参数集,
它会抱怨URL的性质,因为它只是
需要服务器/用户计算机提供的路径,如中所述
如果我错了,请纠正我
结论:
- 最后,我想得出结论,这可能是不可能的服务&
使用js从浏览器通过FTP跟踪文件的进度
- 您可能不得不回退到HTTP协议,通过HTTP上的服务器为文件提供服务,以实现您的目标
我已经链接到了我翻阅过的大部分资源——这里还有一些
希望这能有所帮助。只是好奇-ajax支持ftp吗?好吧,我做了一些挖掘,并得出了支持其他协议即ftp的结论。也许你可以与XMLHttpRequest一起使用来实现你的目标。只是好奇-ajax支持ftp吗?好吧,所以我做了一些挖掘,并得出了支持其他协议即ftp的结论。也许你可以与XMLHttpRequest结合使用以实现您的目标。
testFtpLoad : function(){
var xhr = new XMLHttpRequest();
xhr.open("GET", "ftp://ftp.funet.fi/pub/standards/RFC/rfc959.txt", true);
xhr.onload = function (e) {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
console.log(xhr.responseText);
} else {
console.error(xhr.statusText);
}
}
};
xhr.onerror = function (e) {
console.error(xhr.statusText);
};
xhr.send(null);
},
testUsingAnchorTag : function(){
var $aTag = document.createElement("a");
$aTag.href = "ftp://ftp.funet.fi/pub/standards/RFC/rfc959.txt";
$aTag.id = "temporaryDownloadLink";
$aTag.download = "rfc959.txt";
document.body.appendChild($aTag);
$aTag.click();
setTimeout(function(){
$('#temporaryDownloadLink').remove();
}, 1000);
}