navigateToURL() 和 sendToURL() 函数。在 JavaScript 中,可以分别以 window.runtime.navigateToURL() 和 window.runtime.sendToURL() 形式访问这两个函数;若使用 AIRAliases.js 文件,则分别以 air.navigateToURL() 和 air.sendToURL() 形式访问。| 函数 | 定义方 | ||
|---|---|---|---|
在包含 Flash Player 容器的应用程序(通常是一个浏览器)中,打开或替换一个窗口。 | flash.net | ||
向服务器发送一个 URL 请求,但忽略任何响应。 | flash.net | ||
| navigateToURL | () | 函数 |
function navigateToURL(request:URLRequest, window:String = null):void| 运行时版本: | 1.0 |
在默认系统 Web 浏览器中打开 URL。
重要安全提示
开发人员通常将获取自 FlashVars 等外部来源的 URL 值传递给 navigateToURL() 函数。攻击者可能会尝试操纵这些外部来源,以进行跨站脚本等攻击。因此,开发人员应该验证所有 URL,然后才能将其传递给此函数。
良好的 URL 数据验证蕴含着许多不同的技术,具体取决于 URL 在整个应用程序中的用法。最常用的数据验证技术包括了验证 URL 的方案是否适当。例如,无意中允许 javascript: URL 可能会导致跨站脚本攻击。验证 URL 位于您的域内可以确保进行仿冒攻击的人无法使用 SWF 文件作为 open 请求的重定向器。如要增强安全性,还可以验证 URL 的路径,并验证 URL 符合 RFC 指导原则
参数
request:URLRequest — URLRequest 对象,指定要导航到哪个 URL。
使用 | |
window:String (default = null) — 浏览器窗口或 HTML 帧,其中显示 request 参数指示的文档。可以输入某个特定窗口的名称,或使用以下值之一:
如果没有为此参数指定值,将创建一个新的空窗口。在独立播放器中,可以指定新的 ( |
IOError — request 对象的 digest 属性不是 null。如果在加载 SWZ 文件(一个 Adobe 平台组件)时调用 URLLoader.load() 方法,仅应设置 URLRequest 对象的 digest 属性。
| |
SecurityError — 在 Flash Player(和 Adobe AIR 中的非应用程序沙箱内容)中,以下情况将引发此错误:
| |
Error — 为了响应用户动作(如鼠标事件或按键事件),将不会调用此方法。此要求仅适用于 Flash Player 中的内容和 Adobe AIR 中的非应用程序沙箱内容。
|
<html>
<head>
<script src="AIRAliases.js" />
<script>
function init() {
var url = "http://www.adobe.com";
var variables = new air.URLVariables();
variables.exampleSessionId = new Date().getTime();
variables.exampleUserLabel = "Your Name";
var request = new air.URLRequest(url);
request.data = variables;
try {
air.navigateToURL(request);
}
catch (e) {
// handle error here
}
}
</script>
</head>
<body onload='init()'>
</body>
</html>
| sendToURL | () | 函数 |
function sendToURL(request:URLRequest):void| 运行时版本: | 1.0 |
向服务器发送一个 URL 请求,但忽略任何响应。
若要检查服务器响应,请改为使用 URLLoader.load() 方法。
无法连接到常用的保留端口。有关已阻止的端口的完整列表,请参阅《ActionScript 3.0 编程》一书的“安全性”一章中的“限制网络 API”。
可以在包含 SWF 内容的 HTML 页中设置 object 和 embed 标签的 allowNetworking 参数,防止 SWF 文件使用此方法。
在 Flash Player 10 和更高版本中,如果使用包含上载(由 POST 体内的“content-disposition”标头中的“filename”参数表示)的 multipart Content-Type(例如“multipart/form-data”),则 POST 操作会受应用于上载的安全规则的约束:
另外,对于任何 multipart Content-Type,语法必须有效(根据 RFC2046 标准)。如果语法无效,则 POST 操作受应用于上载的安全规则约束。
有关安全性的详细信息,请参阅以下部分:
参数
request:URLRequest — URLRequest 对象,指定要将数据发送到哪个 URL。
|
SecurityError — 本地不受信任的 SWF 文件无法与 Internet 通信。要避免这种情况,可将此 SWF 文件重新分类为只能与远程内容交互或受信任。
| |
SecurityError — 无法连接到常用的保留端口。有关已阻止的端口的完整列表,请参阅《ActionScript 3.0 编程》一书的“安全性”一章中的“限制网络 API”。
|
<html>
<head>
<script src="AIRAliases.js" />
<script>
function init() {
var url = "http://www.yourDomain.com/application.jsp";
var variables = new air.URLVariables();
variables.sessionId = new Date().getTime();
variables.userLabel = "Your Name";
var request = new air.URLRequest(url);
request.data = variables;
air.trace("air.sendToURL: " + request.url + "?" + request.data);
try {
air.sendToURL(request);
}
catch (e) {
// handle error here
}
}
</script>
</head>
<body onload='init()'>
</body>
</html>