私はJQM + PhoneGapを使用してハイブリッドAndroidアプリに取り組んでいますAJAXでJSONPリクエストを行っています
すべての Chrome PC ブラウザーで正常に動作し、WiFi が接続されている場合は私の Android アプリケーションでも正常に動作しますが、ネットワーク接続を 3G に変更すると AJAX 要求が応答しません。
次のような @BruceHill 関連の投稿を見つけました 。
私はオランダに住んでいませんが、リモートサーバー上のすべてのJSファイルを見つけてCDN経由で呼び出すことで、彼が提案することを試みましたが、残念ながら役に立ちませんでした.
私はこれについていくつかの助けを得ることができてうれしいです...
これは私のAJAXリクエストです:
$.mobile.allowCrossDomainPages = true;
$('#expertsListPage').live('pageshow', function (event) {
$.mobile.showPageLoadingMsg();
getExpertsList();
});
var catId;
var catName
function getExpertsList() {
$('#expertsList li').remove();
catId = getUrlVars()["id"];
catName = getUrlVars()["cat"] ;
$('h1').text( unescape(catName) );
var url = 'http://apis.mydomain.com/mydata.svc/jsonp'
$.ajax({
cache: true,
type: 'GET',
url: url,
dataType: 'jsonp' ,
jsonp: 'callback',
success:api_do
});
}
var expertss;
function api_do(obj) {
$('#expertsList li').remove();
expertss = obj.experts;
$.each(expertss, function (index, expert) {
$('#expertsList').append('<li><a href="ExpertDetails.html?id=' + expert.id + '&catid=' + catId +'&catName=' + catName + '">' +
'<img style="width:160px;height:160px;" src="' + expert.thumbnail + '"/>' +
'<h4>' + expert.name + '</h4>' +
'<p>' + expert.description + '</p>' +
'</a></li>');
});
$('#expertsList').listview('refresh');
$.mobile.hidePageLoadingMsg();
}
function getUrlVars() {
var varsExperts = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (var i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
varsExperts.push(hash[0]);
varsExperts[hash[0]] = hash[1];
}
return varsExperts;
}