2

PhoneGap に基づいてモバイル アプリケーションを開発しています。AJAX を使用する必要があります。jQuery を使用しています。

CORS を使用して PHP 上の WS から JSON を取得しようとしていますが、エラーが発生し、エラー メッセージが空です。コードを Web ブラウザでテストしたところ、動作しました。しかし、PhoneGap で使用すると機能しませんでした。Fecebook WS を使用して PhoneGAp でコードをテストしたところ、動作しました。これは私がテストした組み合わせです:

テスト 1
ソース: file:///C:/.../index.html (Web ブラウザー)
WebService: http: //localhost/.../getemployees.php
結果: 動作します

テスト 2
ソース: PhoneGap
WebService: http: //localhost/.../getemployees.php
結果: 動作しません

テスト 3
ソース: PhoneGap
WebService: https: //graph.facebook.com/OldemarshCr
結果: 動作します

これはコードです:

$.getJSON(url, function (data) {console.log(data);})
.success(function() { console.log("second success"); })
.error(function(jqXHR, textStatus, errorThrown) {
console.log('******* '+"error: " + textStatus+' *******');
});

これは JSON 応答です。

{"items":[{"id":"10","firstName":"Kathleen","lastName":"Byrne","title":"Sales Representative","picture":"kathleen_byrne.jpg","reportCount":"0"},{"id":"9","firstName":"Gary","lastName":"Donovan","title":"Marketing","picture":"gary_donovan.jpg","reportCount":"0"},{"id":"7","firstName":"Paula","lastName":"Gates","title":"Software Architect","picture":"paula_gates.jpg","reportCount":"0"]}

ありがとう、

4

3 に答える 3

0

$.ajax が機能しませんでした...これは私が得るエラーです

{"readyState":0,"responseText":"","status":0,"statusText":"error"}

Web ブラウザーでコードをテストしたところ、動作しました。

これはコードです:

$.ajax({
  crossDomain: true,  
  xhrFields: {withCredentials: true},
  type: 'GET', 
  url: url, 
  dataType: 'json', 
  success: function(response){ console.log(response); }
  error: function(error){ console.log('Error: '+error); }
});

ありがとう、

于 2013-06-18T14:03:26.840 に答える
0

ajax呼び出しで、追加してみてください

         $.ajax({
                crossDomain: true,                 
                xhrFields: {withCredentials: true}
              });
于 2013-06-18T04:30:47.753 に答える
0

グッドニュース!!

問題を解決しました。getJSON と ajax の両方のメソッドが機能しています。問題はサーバーでした。

外部サーバー (localhost ではない) から Web サービスにアクセスすると、機能しました。

ありがとう、

于 2013-06-18T19:24:13.280 に答える