3

Phonegap (Android) と Javascript / JQuery を使用してアプリを作成しています。外部 Web ページからテキストを読み込みたい Javascript ページがあります。何らかの理由で、これを機能させることができません。

アプリ内の私の Javascript ページ

$.mobile.allowCrossDomainPages = true;

$(document).ready(function () {

$.ajax({
        url: 'myexternalserver.com/test.php',
        dataType: 'jsonp',
        jsonp: 'jsoncallback',
        timeout: 5000,
        success: function(data, status){

            alert("connected");

        },
        error: function(){

            alert("jsonp error");
        }
        });
});

外部サーバー上の私の PHP ページ

// $out is an array of text

echo $_GET['jsoncallback'] . '(' . json_encode($out) . ');';

含めるように Cordova.xml ファイルを変更しました

<access origin="http://myexternalserver.com" subdomains="true"/>

他の手順がありませんか? いつも接続エラーになります。

ありがとう。

編集:

JavaScriptページを次のように変更しました

$.getJSON("http://myexternalserver.com/test.php?var=test&callback=?", {
success:function(data){
            alert("Working");

            var ot = jQuery.parseJSON( data );

            alert(ot);

}, error: function() { 
    alert("Error"); 
}
});

「作業中」のアラートが表示されるようになりましたが、データは null として読み取られます。

4

2 に答える 2

0

サーバーが適切なヘッダーを返していることを確認してください。サーバーが次のヘッダーを返すまで、phonegap アプリケーションで同様の問題が発生しました。

Access-Control-Allow-Origin: *

アクセス制御許可メソッド: *

Access-Control-Max-Age: 1728000

アクセス制御許可ヘッダー: *

詳細については、https://developer.mozilla.org/en/http_access_controlを参照してください。

また、 http://api.jquery.com/jQuery.support属性corsもチェックしてください

cors をまだサポートしていないがクロスドメイン XHR リクエスト (Windows ガジェットなど) を許可する環境でクロスドメインリクエストを有効にするには、 $.support.cors = true; を設定します。

于 2012-07-31T09:36:14.827 に答える