我正在尝试使用带有jQuery的JSONP从服务器解析JSON。 以下代码与PhoneGap一起使用,用于使用HTML创建Android应用。 当我在Safari中使用下面的代码时,例如,它工作正常,但有电话间隙,它根本不起作用!
有人知道发生这种情况的原因吗?
<!DOCTYPE HTML>
<html>
<head>
<title>PortalARP</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
<script type="text/javascript" charset="utf-8" src="cordova-1.8.0.js"></script>
<script>
$(document).ready(function () {
$("#conteudoArea").append("<ul></ul>");
$.ajax({
url: 'http://portalarp.com.br/portal/produto/gerar_json?id_categoria_pai=56',
dataType: 'jsonp',
crossDomain: true,
jsonp: false,
jsonpCallback: 'jsonFlickrFeed',
success: function (d) {
$('#title').text(d.id_produto);
var i, l = d.items.length, newLi, newItem;
$('<ul id="photoList"></ul>').appendTo('#main');
for (i = 0; i < l; i++) {
newLi = $('<li></li>');
newItem = d.items[i];
$('<h2>' + newItem.nm_produto + '</h2>').appendTo(newLi);
$('<h3>' + newItem.nm_marca + '</h3>').appendTo(newLi);
newLi.appendTo('#photoList');
}
}
});
});
</script>
</head>
<body>
<div id="main"></div>
</body>
答案 0 :(得分:0)
我会根据jquery mobile documentation检查$ .support.cors和$ .mobile.allowCrossDomainPages是否均为真。
答案 1 :(得分:0)
将res/xml/cordova.xml
中的网址列入白名单,它应该有效。
<access origin="http://portalarp.com.br" />
有关详细信息,请查看文档:
http://docs.phonegap.com/en/1.9.0/guide_whitelist_index.md.html#Domain%20Whitelist%20Guide