【发布时间】:2013-05-23 20:24:50
【问题描述】:
我正在使用 phonegap 开发一个 BlackBerry 应用程序。问题是,它没有从我的服务器在真实设备上获取外部 JSON,尽管它在 Ripple 上运行良好。
首先,我在 build.xml 文件中添加了<access subdomains="true" uri="*" />。
这是我的 html/javascript 代码:
<script>
function onLoad() {
$.ajax({
type : 'GET',
url : "http://myserver.com/api/test.php",
jsonpCallback : 'jsonCallback',
crossDomain : true,
cache : false,
dataType : "jsonp",
jsonp: 'callback',
success: function(json) {
$( ".info" ).html("success");
},
error: function(xhr, textStatus, errorThrown) {
$( ".info" ).html("Error: " + textStatus + ":" + errorThrown);
}
});
}
</script>
<body onload="onLoad();">
...
</body>
当我在 Ripple 模拟器上运行它时,会调用成功回调,但在真实设备 (BlackBerry 7.0) 上我会得到以下输出:
parsererror: json 回调未被调用。
附带说明,我已经在 JSONLint 中验证了响应,没关系。此外,响应是有效的 jsonp 响应:
jsonCallback({"result":{"status":"ok","testText":"There goes my content"}});
此外,我将代码放在我的服务器上以记录访问,但它没有被调用,所以我猜问题不是我的服务器代码,而是某处的移动代码。
【问题讨论】:
标签: blackberry jsonp cordova