2016-04-04 4 views
0

PhoneGap Developerとの基本的なAJAXを取得することが難しく、誰かが私を助けてくれるかどうかを知りたいと思っていました。基本/初心者PhoneGapとAJAX

私はW3SchoolsのAJAX PHPサンプルを使ってテストしようとしています。私はPhoneGap/AJAXの能力を「構築」して、作成したモバイルアプリのユーザーログイン機能を開発することができます。しかし、プログラマーではない人(コンピュータネットワーキングの問題で混乱しがちな人...プロキシを始めることさえできない人)として、私はW3Schoolsのサンプルを手に入れようとしても困惑します。

ここに見つかるサンプル(http://www.w3schools.com/ajax/ajax_php.asp)は次のとおりです。 (私のように、プログラマティックではなく、視覚的に考えるのがよい人のために、サンプルにはテキストボックスがあり、そこに人の名前の最初の文字を入力すると、名前の検索が始まりますデータベースファイル内の文字と、それは呼びかけていることそれは、ユーザーが入力されると、それは、テキストボックスの下に見つけたものをリアルタイムに結果を表示)

HTML/JavaScriptを/ AJAX:。。

<html> 
 
<head> 
 
<script> 
 
function showHint(str) { 
 
    if (str.length == 0) { 
 
     document.getElementById("txtHint").innerHTML = ""; 
 
     return; 
 
    } else { 
 
     var xmlhttp = new XMLHttpRequest(); 
 
     xmlhttp.onreadystatechange = function() { 
 
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
 
       document.getElementById("txtHint").innerHTML = xmlhttp.responseText; 
 
      } 
 
     }; 
 
     xmlhttp.open("GET", "gethint.php?q=" + str, true); 
 
     xmlhttp.send(); 
 
    } 
 
} 
 
</script> 
 
</head> 
 
<body> 
 

 
    
 

 
<p><b>Start typing a name in the input field below:</b></p> 
 
<form> 
 
First name: <input type="text" onkeyup="showHint(this.value)"> 
 
</form> 
 
<p>Suggestions: <span id="txtHint"></span></p> 
 
</body> 
 
</html>

PHP:

<?php 
 
// Array with names 
 
$a[] = "Anna"; 
 
$a[] = "Brittany"; 
 
$a[] = "Cinderella"; 
 
$a[] = "Diana"; 
 
$a[] = "Eva"; 
 
$a[] = "Fiona"; 
 
$a[] = "Gunda"; 
 
$a[] = "Hege"; 
 
$a[] = "Inga"; 
 
$a[] = "Johanna"; 
 
$a[] = "Kitty"; 
 
$a[] = "Linda"; 
 
$a[] = "Nina"; 
 
$a[] = "Ophelia"; 
 
$a[] = "Petunia"; 
 
$a[] = "Amanda"; 
 
$a[] = "Raquel"; 
 
$a[] = "Cindy"; 
 
$a[] = "Doris"; 
 
$a[] = "Eve"; 
 
$a[] = "Evita"; 
 
$a[] = "Sunniva"; 
 
$a[] = "Tove"; 
 
$a[] = "Unni"; 
 
$a[] = "Violet"; 
 
$a[] = "Liza"; 
 
$a[] = "Elizabeth"; 
 
$a[] = "Ellen"; 
 
$a[] = "Wenche"; 
 
$a[] = "Vicky"; 
 

 
// get the q parameter from URL 
 
$q = $_REQUEST["q"]; 
 

 
$hint = ""; 
 

 
// lookup all hints from array if $q is different from "" 
 
if ($q !== "") { 
 
    $q = strtolower($q); 
 
    $len=strlen($q); 
 
    foreach($a as $name) { 
 
     if (stristr($q, substr($name, 0, $len))) { 
 
      if ($hint === "") { 
 
       $hint = $name; 
 
      } else { 
 
       $hint .= ", $name"; 
 
      } 
 
     } 
 
    } 
 
} 
 
    
 
// Output "no suggestion" if no hint was found or output correct values 
 
echo $hint === "" ? "no suggestion" : $hint; 
 
?>

テストはlocalhostを使用して、私のブラウザでHTMLファイル、すべてが完璧に動作します。

しかし、上記をPhoneGapプロジェクトにしてAndroid携帯でテストすると、名前を返す機能は動作しません。これは明らかにAJAXコマンドが実行されていないためです。

誰でもこの問題を解決する方法を知っていますか?私はすでに私のconfig.xmlファイルに次のように置かれている、と何も変わっていません:事前に

<access origin="*" subdomains="true"/>

感謝を。まだ

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

を追加し、HTMLにこのメタタグを追加していない場合、デフォルト

上のホワイトリストブロック外部コールは、このプラグインを追加しているので

答えて

0

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