Phonegap黑莓5跨域通信

时间:2012-01-06 11:26:14

标签: ajax blackberry cordova cross-domain blackberry-os5

我在OS6和OS7设备上测试了我的应用程序,两者都运行良好。但是几天前,我在OS5设备上遇到了一个问题。所有Ajax请求都不起作用。经过一些谷歌搜索,我发现在OS5中,ajax被禁用。这很奇怪,我的应用程序必须在OS5设备上工作,但我无法进行Ajax调用。

要解决此问题,我搜索了旧的跨域方法,并找到了“动态脚本”和“IFrame”方法。这篇文章描述了它们:

http://www.openjs.com/articles/ajax/transfer_methods_xmlhttprequest_alternatives.php

但我没有关于非xmlHttpRequest或非ActiveX方法的示例。有没有人对这些方法有一个有效的例子。我在服务器上有一个jsp文件,它向我发送了一个xml响应。

一个工作的例子会让我如此感激。

提前致谢。

[编辑]

我决定使用IFrame进行跨界通信,但无法获取iFrame的内容,我的代码是这样的:

function onIFrameLoad(i) {
    var response;
    if(i.contentDocument){
        response = i.contentDocument; // For NS6
    }else if(i.contentWindow){
        response = i.contentWindow.document; // For IE5.5 and IE6
    }
    var parser = new PListParser();
    var result = parser.parsePList(response);   
    ....
}

<iframe id="iFrame" onload="onIFrameLoad(this);" src="[a url]"></iframe>

这在Ripple Emulator中运行良好,但在真实设备(os5)上不起作用。

1 个答案:

答案 0 :(得分:0)

您是否可以访问要获取数据的服务器?如果您这样做,也许您可​​以将其配置为以JSONP的形式获取数据。