超时超时时,dojo / request / iframe不会清理表单

时间:2015-05-06 15:00:03

标签: javascript iframe dojo

我正在使用iframe()从服务器返回生成的文件。我注意到在第一次请求后对iframe()的后续调用完全没有返回,所以我在选项中添加了timeout。现在,这会导致注入iframe的表单数据在超出超时后永远不会被清除。

此行为在此处转载:JSFiddle

require(["dojo/request/iframe"], function(iframe){
    for(var i = 0; i < 10; i++){
        iframe("http://posttestserver.com/post.php", {
            data: { test:123 },
            timeout: 100
        });
    }
});

enter image description here

运行和检查显示10个表单,注入的数据显示为html输入。如果删除超时选项,则清除所有元素。如果将超时增加到一个非常高的数字,则清除所有元素。似乎只有在超时超时时,元素才会持续存在。

我正在考虑的可能的解决方法是......

  1. 超时后手动清理。
  2. 以不同方式配置选项,以免发生这种情况。不确定这是否可行。
  3. 使用iframe以外的其他内容。不确定这是否可行。

1 个答案:

答案 0 :(得分:0)

在jsFiddle示例中,它不允许加载&#39; google.com&#39;因为&#39; X-Frame-Options&#39;设置为“SAMEORIGIN&#39;”。

我已经添加了一个pdf下载示例,您可以查看浏览器控制台/网络选项卡。所有10个请求都获得了成功。 iframe中的表单也会被清除。

请找到更新的jsFiddle @ http://jsfiddle.net/kLLvkm6k/4/

&#13;
&#13;
require(["dojo/request/iframe"], function(iframe){
    for(var i = 0; i < 10; i++){
      iframe("http://www.analysis.im/uploads/seminar/pdf-sample.pdf", {
       data: { test:123 }
      });
    }
});
&#13;
&#13;
&#13;

由于 -Srikant