2012-01-06 81 views
1

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

为了解决这个问题,我搜索了旧的跨域方法,并找到了“动态脚本”和“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> 

这在波纹模拟器中运行良好,但不适用于真实设备(os5)。

回答

0

您是否有权访问提取数据的服务器?如果你这样做,也许你可以配置它作为JSONP获取数据。