javascript - 使用 iPhone 时用于加载跨站点 HTML 的 iframe 替代方案?

标签 javascript iphone ajax xss

如果之前有人问过这个问题,我深表歉意。我搜索但没有找到任何东西。出于安全原因,AJAX 请求(例如 jQuery $.get)必须在同一域内,这是众所周知的限制。这个问题的一个众所周知的解决方法是使用 iframe 从另一个网站提取一些任意 HTML,然后您可以使用在 iframe 和父页面之间通信的 javascript 检查此 HTML 的内容。

但是,这在 iPhone 上不起作用。在一些测试中,我发现 Safari iPhone 浏览器中的 iframe 仅显示来自同一站点的内容。否则,它们会显示空白内容区域。

有什么办法解决这个问题吗?除了使用 iframe 之外,还有其他替代方法可以让我将 HTML 从不同域的页面提取到我页面上的 javascript 中吗?

编辑:
一个答案提到了 JSONP。这对我没有帮助,因为据我了解,JSONP 需要我从中请求数据的服务器的支持,但事实并非如此。

同样的答案提到在我的服务器上创建一个代理脚本并通过那里加载数据。不幸的是,这对我来说也不起作用。我试图从中请求数据的站点需要用户登录。而且我不希望我的服务器必须知道用户的凭据。我希望在客户端使用一些东西,这样我的应用程序就不必知道其他站点的用户凭据。

我准备接受无法在 iPhone 上完成我想做的事情。我只是想确认一下。

最佳答案

您通常不能通过 JavaScript 检查来自另一个域的 iframe 的内容。最常见的答案是使用 JSONP 或让您的原始服务器托管代理脚本来为您检索内部内容。

鉴于您的修订,如果没有辅助站点的修改或支持,您肯定无法通过 iPhone 的浏览器执行您想要的操作。

关于javascript - 使用 iPhone 时用于加载跨站点 HTML 的 iframe 替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2268985/

相关文章:

javascript - 如何使用 javascript 在页面加载时设置值?

javascript - 动态更新表格单元格纯javascript

iphone - 录制的视频方向问题

jquery - 悬停在 js 生成的类/元素上不起作用

javascript - 新的 dijit.form.Button 在声明时保持自动点击

javascript - 带有附件的 Office.context.mailbox.item.displayReplyAllForm 不工作 outlook.live.com 和 outlook api 给出内部服务器错误

javascript - 使用javascript更改所有对象的属性

javascript - JSON AJAX 请求在使用方括号时返回未定义

iPhone等: how to tell if the device has a camera?

iphone - iOS 图表框架 : TapkuLibrary, Core-Plot 或任何。点击调用方法?