我在整个 Javascript/Dojo 世界中慢慢变得更好。但是,我对整个 dojo/request/iframe 业务感到困惑。我知道在 Javascript 中,出于安全原因,您只能连接到源服务器。这是给定的。然而,当人们开始考虑“使用 iframe 来解决这个问题”时,我会非常迷茫。
Dojo/resources/blank.html:
- 包含
<html><head><script>isLoaded = true;</script></head><body></body></html>
- 需要由拥有您的应用程序的同一台服务器托管。因此,如果您使用 CDN 中的 dojo,您需要将这个 blank.html 文件保存在应用程序所在的同一台服务器上
该页面http://livedocs.dojotoolkit.org/dojo/request/iframe解释了关于 iframe 的内容:
在发起调用页面的服务器以外的服务器上调用服务(跨域请求)。请注意,在这种情况下,无法读取响应正文:您可以发送数据,但无法获得任何回复。如果您需要访问返回数据,请参阅 dojo/request/script。
从表单上传文件(例如文件输入控件)。正常的 XHR 机制无法访问文件选择标签引用的文件数据作为安全措施。dojo/request/iframe 可以通过 IFrame 代理这些调用,从而仍然可以以异步方式进行文件上传。
一个空的 HTML 页面如何帮助我解决这个问题?(嗯,设置一个全局变量“isLoaded”...?)
此外,在上述两点解释您无法检索响应之后,文档继续:
- 发出请求以检索某些 XML 的示例如下所示:
所以……你能找回来吗?
我想我需要退后一步,真正理解整个“使用 iframe 绕过跨域请求”以及真正理解“正常 XHR 机制”(什么机制?)无法访问数据引用的问题选择标签(什么选择标签?请求正文中的数据不是吗?)可以通过 iFrame 代理这些调用(您的意思是设置 isLoaded 的单个空文件?!?)
我很困惑……迷路了。有人可以给我一点方向吗?
谢谢...
默克。