我想知道是否有任何方法可以检索从 iframe 发送的 ajax 请求的响应。
iframe 执行以下操作:
我想做的是在 iframe 之外拦截该请求,并使用该信息更新页面。
如果您进入 chrome 的开发工具,然后转到网络选项卡,您可以看到 iframe 发出的请求/响应。如果每次页面上有响应时都会触发一个窗口事件或类似的东西,那就太好了。
注意:iframe 是不在同一个域中的页面。
最佳答案
如果子 iframe 与父 iframe 位于不同的域中,则您实际上无法执行任何可以跨浏览器工作的操作。假设您可以控制两个框架上的客户端脚本,请参阅下面的 jasonjifly 的回答,了解适用于某些浏览器的技术。
如果 parent 和 child 在同一个域上,那么你可以实现你正在寻找的东西。
例如,假设您使用的是 jquery,您可以在 iframe 中包含以下代码:
$.ajax(function() {
.....
complete: function() {
window.parent.onAjaxComplete('Hi there');
}
});
连同父框架中的此代码:
function onAjaxComplete(msg)
{
alert(msg);
}
要在跨域场景中获得类似的结果,您可以让父框架轮询服务器。当服务器收到来自子 iframe 的 ajax 请求时,它可以通过轮询服务提醒父页面。显然,这仅适用于您可以控制子 iframe 调用的服务。
关于javascript - 有没有办法检索从 iframe 发送的 ajax 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17606690/