Ajaxリクエストが実デバイス上のcordova/phonegapアプリで失敗する

私は Cordova 4.0 jQuery Mobile 1.4.2 Androidアプリを作成していますが、特定のAJAX通話に問題があります。私は似たような質問を探しましたが、すでにそこに解決策を実装しましたが成功しませんでした。

これが起こるのです:

以下のAJAX呼び出しがあります。

var request = $.ajax({
        type: "GET" ,
        crossDomain: true,
        url: 'http://pubads.g.doubleclick.net/gampad/adx?iu=/XXX/YYY&sz=300x50&c=123456789'
    });

    request.done(function (response, textStatus, jqXHR){

        console.log(response);
    });

    request.fail(function (jqXHR, textStatus, errorThrown){
        console.error("DFP Plugin Error: " + textStatus, errorThrown);
    });

When I run my app in my computer's browser, that request works perfectly. However, when I build and debug the app from a real device, the request fails giving this error: {"readyState":0, "responseText":"", "status":0, "statusText":"error"}

I've already enabled $.support.cors = true; and $.mobile.allowCrossDomainPages = true;, and I already have ) in my config.xml file.

誰かが私が問題が何であるかを理解するのを手伝ってくれる?

5
コンソールの出力を教えてください。コンソール出力を取得するには、これを使用します。 stackoverflow.com/a/27044611/3499115
追加された 著者 JBaczuk,
コンソールの出力を教えてください。コンソール出力を取得するには、これを使用します。 stackoverflow.com/a/27044611/3499115
追加された 著者 JBaczuk,
サーバー側からのエラー
追加された 著者 Hanh Le,
サーバー側からのエラー
追加された 著者 Hanh Le,
@HanhLe、それがどちらの状況でもうまくいかないのであれば、デスクトップブラウザではうまくいきません。
追加された 著者 Albert,

8 答え

まあ、これは私が期待していたような答えではありませんが、これを解決するために私がしたことです:まったく新しいCordova 4.0プロジェクトを作成し、そこからもう一方のwwwフォルダーをコピーします。それから、いつもどおりEclipseでビルドして実行すると、すべてがプロジェクト内の任意の場所で1行のコードを変更することなく動作しました。

私は、この問題がコード内にないことに気付きました。なぜなら、私がアプリ内で持っていた(そして正常に動作していた)他のAJAX呼び出しも失敗していることに気付いたからです。

そのため、これがCordova 4.0のバグなのかどうかはわかりませんが、AJAXが機能しなくなることがありました。誰かが同じ問題に遭遇した場合に備えてこれを投稿しています。

5
追加された
ここで同じ問題...病気。 :/
追加された 著者 aZtraL-EnForceR,
それは私にも起こりました。しかし、 "cordova ajax call not work"とグーグルした後、私は自分のアプリをデバイスとエミュレータからアンインストールし、エミュレータを消去し、エミュレータを削除して新しいものを作成しました。ちょっと面白い。
追加された 著者 Rafael Mena Barreto,

まあ、これは私が期待していたような答えではありませんが、これを解決するために私がしたことです:まったく新しいCordova 4.0プロジェクトを作成し、そこからもう一方のwwwフォルダーをコピーします。それから、いつもどおりEclipseでビルドして実行すると、すべてがプロジェクト内の任意の場所で1行のコードを変更することなく動作しました。

私は、この問題がコード内にないことに気付きました。なぜなら、私がアプリ内で持っていた(そして正常に動作していた)他のAJAX呼び出しも失敗していることに気付いたからです。

そのため、これがCordova 4.0のバグなのかどうかはわかりませんが、AJAXが機能しなくなることがありました。誰かが同じ問題に遭遇した場合に備えてこれを投稿しています。

5
追加された
ここで同じ問題...病気。 :/
追加された 著者 aZtraL-EnForceR,
それは私にも起こりました。しかし、 "cordova ajax call not work"とグーグルした後、私は自分のアプリをデバイスとエミュレータからアンインストールし、エミュレータを消去し、エミュレータを削除して新しいものを作成しました。ちょっと面白い。
追加された 著者 Rafael Mena Barreto,

In my case I was upgrading from cordova 3.7 to cordova 5 Here is what solved it for me: add the plugin cordova-plugin-whitelist

4
追加された
ドキュメントへのリンク: cordova.apache.org/docs/en/ 5.1.1 /… とコマンド: cordova plugin add cordova-plugin-whitelist
追加された 著者 Yaroslav Stavnichiy,

In my case I was upgrading from cordova 3.7 to cordova 5 Here is what solved it for me: add the plugin cordova-plugin-whitelist

4
追加された
ドキュメントへのリンク: cordova.apache.org/docs/en/ 5.1.1 /… とコマンド: cordova plugin add cordova-plugin-whitelist
追加された 著者 Yaroslav Stavnichiy,

Android Ajaxに対する新しいコンテンツセキュリティポリシーのため、リクエストはブロックされています。

以下を試して、それがうまくいくかどうか確かめてください。

config.xmlを開きます

交換する


あり



phonegapプロジェクトを準備して、もう一度ビルドして、実際のデバイスで確認してください。

よろしく、 ジャガット

2
追加された

Android Ajaxに対する新しいコンテンツセキュリティポリシーのため、リクエストはブロックされています。

以下を試して、それがうまくいくかどうか確かめてください。

config.xmlを開きます

交換する


あり



phonegapプロジェクトを準備して、もう一度ビルドして、実際のデバイスで確認してください。

よろしく、 ジャガット

2
追加された

次のプラグインが足りなかったことがわかりました。

コルドバプラグインホワイトリスト

私がそれをインストールした後、アンドロイドプラットフォームを削除し、アンドロイドプラットフォームを再追加し、ビルドして実行して、それはうまくいきました!

0
追加された

次のプラグインが足りなかったことがわかりました。

コルドバプラグインホワイトリスト

私がそれをインストールした後、アンドロイドプラットフォームを削除し、アンドロイドプラットフォームを再追加し、ビルドして実行して、それはうまくいきました!

0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript