如何发出AJAX请求,然后删除请求的iframe?

时间:2013-06-06 17:31:01

标签: jquery ajax

背景

在我的页面上有一个上传文件的选项,这会打开一个iframe,其中包含用于上传文件的表单。如果用户决定取消上传,我想确保删除任何上传的文件。所以我对一个jsp进行ajax调用,该jsp运行一个函数来删除任何上传的临时文件。进行ajax调用后,我从屏幕上删除了iframe,以便用户继续工作。删除文件的jsp不返回任何内容,我不需要让用户知道临时文件已被删除。

我发现这在IE中运行正常,但在chrome和safari中显示错误给用户,在调试一段时间后我发现错误的原因是ajax调用在iframe被删除后返回并且chrome和safari不喜欢将ajax调用返回到已移除的iframe。因此,一种解决方案是使ajax调用同步。另一种解决方案是使jsp生成一个线程来管理删除。

问题:

我想知道的是,是否有某种方法可以修改ajax调用,以便它返回到与被删除的页面不同的页面?

function cancelAndDelete()
{
    $.ajax({url:"removeTempFiles.jsp", data: {id: fileId}, async: true});
    $("#iframe").remove();
}

像$(window.opener).ajax()这样的东西似乎不起作用,但这就是我想要的。

1 个答案:

答案 0 :(得分:0)

function cancelAndDelete()
{
    $.ajax({url:"removeTempFiles.jsp", data: {id: fileId}, async: true}, complete: window.location.replace("http://URL HERE.com"));
    $("#iframe").remove();
}

那是你想要做的吗?