使用Rails进行AJAX文件上载后检查iframe状态

时间:2011-07-31 20:16:47

标签: javascript ruby-on-rails ajax iframe

有一个类似的帖子Retrieving HTTP status code from loaded iframe with Javascript,但解决方案要求服务器端返回调用iframe中的函数的javascript。相反,我只想检查iframe的HTTP状态代码,而不必调用iframe本身的函数,因为我的应用程序要么通过HTML返回完整站点,要么将单个对象作为JSON返回。基本上我一直在尝试实现一个回调方法,它返回成功|失败,取决于HTTP状态代码。

目前我有uploadFrame.onLoad = function() { ... so far pretty empty ... },我不确定在查找HTTP状态代码时要检查什么。到目前为止,我主要依靠jQuery的$.ajax()来处理成功,但希望进一步了解XHR调用和iframe使用背后的机制。提前谢谢。


更新

我使用jQuery提出的解决方案

form.submit(function() {
  uploadFrame.load(function() {
    //using eval because the return data is JSON
    eval( '(' + uploadFrame[0].contentDocument.body.children[0].innerHTML + ')' );
    //code goes here
  });
});

1 个答案:

答案 0 :(得分:1)

我认为最好的解决方案是将<script>标记注入您的iframe <head>并在其中插入“检测”javascript代码。

类似的东西:

$('#iframeHolderDivId').html($.get('myPage.php'));
$('#iframeHolderDivId iframe head').delay(1000).append($('<script/>').text('your js function to detect load status'));

也许这不是最好的解决方案,但我认为它有效