0

jQueryライブラリでJSを使用して、サーバー(作成した、フルアクセス権がある)からデータをロードしようとしています。これはブラウザで完全に機能します。しかし今、私はそれをphonegapで動作させようとしています。これは何らかの理由で機能しません。

  • jQueryではありません。色を変えてみましたが、うまくいきました。
  • インターネットにアクセスできます。Web サイトから画像を読み込もうとすると、正常に動作します。

に次の設定を追加しましたconfig.xml

<access origin="*"/>
  <plugin name="cordova-plugin-whitelist" version="1"/>
  <allow-intent href="http://*/*"/>
  <allow-intent href="https://*/*"/>
  <allow-intent href="tel:*"/>
  <allow-intent href="sms:*"/>
  <allow-intent href="mailto:*"/>
  <allow-intent href="geo:*"/>
  <platform name="android">
    <allow-intent href="market:*"/>
    <allow-intent href="*"/>
  </platform>
  <platform name="ios">
    <allow-intent href="itms:*"/>
    <allow-intent href="itms-apps:*"/>
  </platform>

HTML メタタグもいくつか追加しました。

<meta http-equiv="Content-Security-Policy" 
      content="default-src *; 
               style-src 'self' 'unsafe-inline' 'unsafe-eval'; 
               script-src 'self' 'unsafe-inline' 'unsafe-eval';">

そして、これは私のAJAX呼び出しです:

    $.ajax({
         url: "http://domain.com/Rooster/schedule",
         data: {token : 's0m3r4nd0mt0k3n', user : '~me'},
         type: "GET",
         crossDomain: true,
         success: function( response ) {
              \\irrelevant success function.
            }
      });
}

誰かがこれを機能させることを願っています!

4

3 に答える 3

1

@David
あなたはよくある間違いを犯しました。システムを適用する必要がありますwhitelistCordova Tools 5.0.0 (2015 年 4 月 21 日) 以降で必要です。Phonegap Buildの場合、それはcli-5.1.1(2015 年 6 月 16 日)以降を意味します。

あなたが持っているもの(上にリストされているもの)を次のものに置き換えてくださいconfig.xml

<plugin name="cordova-plugin-whitelist"      source="npm" spec="1.1.0" />
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" /> <!-- Required for iOS9 -->

アプリが安全でないことに注意してください。アプリを保護するのはあなた次第です。index.html次のように変更し ます。

<meta http-equiv="Content-Security-Policy" 
         content="default-src *; 
                  style-src * 'self' 'unsafe-inline' 'unsafe-eval'; 
                  script-src * 'self' 'unsafe-inline' 'unsafe-eval';">

アプリが安全でないことに注意してください。アプリを保護するのはあなた次第です。

簡単なヒント: すべての「インライン」javascript とスタイル (css) を削除することで、CSP (Content-Security-Policy) を大幅にバイパスできます。それらを別のファイルに入れます。これについては、今月後半にブログに書きます。ハイブリッド アプリの新しい "ベスト オブ プラクティス" では、"インライン" を個別のファイルに移動します。

このホワイトリストワークシートは、アプリを保護するのに役立ちます。
Cordova/Phonegap ホワイトリスト システムの適用方法-- 幸運を祈る

于 2016-02-27T10:55:19.117 に答える
0

コンテンツ セキュリティ ポリシーには、接続先のサーバーをリストする connect-src を追加する必要がある可能性があります。すべての場合は * です。次に例を示します。

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; connect-src http://domain.com">

connect-src は、Ajax タイプのリクエストを送信できる外部サーバーを制御します。完全な説明については、このブログ投稿Content Security Policy Referenceサイトを参照してください。

于 2016-02-26T02:17:47.500 に答える
0

ホワイトリストプラグインは含まれていますか? これは通常、このエラーの原因です

https://github.com/apache/cordova-plugin-whitelist

于 2016-02-25T15:02:07.647 に答える