在浏览器控件中模仿AJAX文件上传失败

本文关键字:文件 失败 AJAX 浏览器 控件 | 更新日期: 2023-09-27 18:10:10

我有一个问题,但我不知道在哪里。

我已经创建了一个使用Angular的网站,这可能不相关,但又可能是。在这个网站的众多功能中,其中之一就是能够上传文件,然后得到响应。响应是一些简单的JSON。目前我唯一能用的浏览器是IE8。避免传入的抛出对象 -我已经尝试了所有方法来改变这个事实,但它就是这样。

我已经得到了网站模仿AJAX上传提交一个表单,并有响应重定向到一个iframe。事实上,我正在使用一个模块来为我完成大部分工作。到目前为止,所有这些都比你在IE8中想象的要好。我知道,对吧?难以置信!

但是…总有一个但是…

我需要在winforms项目中运行web浏览器控件时获得此页面。我成功地上传了文件。我的REST服务获取它,保存它,并返回正确的响应。调试时,我甚至可以看到响应是可用的。但是由于某些原因,iframe的load方法从未被调用。我在页面上显示的iframe从未使用JSON填充。

同样,这在IE中运行时有效,但在web浏览器控件中不起作用。我没有得到错误,并且到处都有断点和调试器语句。这就像响应落在裂缝里,被忽略了。

谁能告诉我为什么会这样?<<em>交叉手指/em>

在浏览器控件中模仿AJAX文件上传失败

很抱歉耽误了您的时间。好吧,没有任何形容词可以形容我有多忙。

答案在帮助上传文件的模块中。它可以直接用于IE 8,但在web浏览器控件中运行时就不行了。该模块动态地将一个onload事件绑定到一个iFrame,该iFrame也正在动态地创建以处理post返回。任何使用过IE并需要上传文件的人都可能知道这种方法。这在IE8中有效,但在web浏览器控件中无效。我们修改它,在iFrame被创建时添加onload事件,这就解决了这个问题。