在rails视图中发出Javascript循环请求
Making a Javascript Loop request in rails view
我需要从给定的链接下载一个文件。为了做到这一点,我必须对该链接提出get请求。它可以有三种状态:
1.代码为200,一旦请求落地,将开始下载
2.代码202,这意味着我必须重复请求,因为文件正在上传
3.错误代码,我必须创建一个显示这一点的dom元素。
工作原理:
我向这个轨道行动提出请求:
def by_month
export_form = Commissions::ByMonthForm.new(current_user)
if export_form.submit(params)
@export = export_form.export
else
show_errors export_form.errors
end
end
这反过来启动文件上传。我不知道它什么时候准备好(取决于文件的大小)。现在,我必须创建一个javascript get请求,指向一个链接,该链接遵循我在文章开头给出的指示。并从rails将其集成到by_month.html.erb视图中。我设法编写的javascript是:
function httpGetAsync(theUrl){
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
redirect_to_main();
}
else if(xmlHttp.status == 202) {
httpGetAsync(theUrl);
}
else {
make_error_css();
}
}
}
xmlHttp.open("GET", theUrl, true); // true for asynchronous
xmlHttp.send(null);
}
然而,我认为它不起作用。你知道我该怎么做吗?(redirect_to_main和make_error_css是我稍后将自己实现的函数)。
根据下面的注释更新
你能试试这个吗,
function httpGetAsync(theUrl){
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
redirect_to_main();
}
else if(xmlHttp.status == 202) {
setTimeout(
makeRequest(theUrl),
3000);
}
else {
make_error_css();
}
}
}
//makeRequest(xmlHttp, theUrl);
xmlHttp.open("GET", theUrl, true); // true for asynchronous
xmlHttp.send(null);
}
function makeRequest(theUrl){
httpGetAsync(theUrl);
}
如果状态为202,则CCD_ 1是再次进行请求的地方。
相关文章:
- Javascript循环不会自我更新
- JavaScript循环无法正确计算/显示结果
- JavaScript循环并等待函数
- Javascript:循环属性内部的条件递增或递减
- Array方法中的Javascript循环
- 用于使用javascript循环选择选项
- 中断javascript循环
- 如何在javascript循环中打印代码
- jQuery.ajax()访问javascript循环中的beforeEnd局部变量
- 在qualtrics上使用javascript:循环块中的问题id
- GoogleMapsV3api只显示Javascript循环中的一些标记
- Javascript循环限制为仅1
- 如何将jQueryeach()转换为常规的javascript循环
- 有没有javascript循环的替代方案
- GraphQL代码中的Javascript循环依赖关系
- Javascript循环文本
- JavaScript循环中的HTML
- ..的Javascript..循环中的对象没有在最后一个属性上运行
- JavaScript循环迭代太多
- Javascript循环计算