2014-03-25 50 views
0

我想在eclipse和android模擬器的phonegap中加載php中的文本。 我不知道我在做什麼錯。phonegap + php不起作用

我的代碼的index.html:

<html> 
    <head> 
    <script src="cordova.js"></script> 
    <script> 
     var xmlhttp; 
     window.onload = function(){ 
     document.addEventListener("deviceready", init, false); 
     }; 

     function init(){ 
     var url = "http://localhost/php-handyAPP/phpinfo.php"; 
     xmlhttp = new XMLHttpRequest(); 
     xmlhttp.onreadystatechange = function(){ 
      alert (xmlhttp.readyState); 
      if(xmlhttp.readyState == 4 && xmlhttp.readyState == 200) 
      { 
       document.getElementById("result").innerHTML = xmlhttp.responseText; 
      } else { 
       document.getElementById('result').innerHTML = "Error loading page "; 
      } 
     }; 
     xmlhttp.open("GET", url , true); 
     xmlhttp.send(null); 
    }; 
    </script> 
    <title>phonegap + php</title> 
    </head> 

    <body> 
     <div id="result"></div> 
    </body> 

</html> 

我的PHP代碼 - phpinfo.php的:

<?php 
echo 'Hello World'; 
?> 

我的config.xml

<access origin="*"/> 

我的AndroidManifest.xml

​​

我在android模擬器中得到if語句「Error loading page」。

+0

可能由於該網址包含本地主機,該網站只能在您的電腦上運行,無法通過您的網絡或互聯網訪問。 –

+0

您很可能正在進行跨域請求,這自然會失敗。查看[同源策略](http://en.wikipedia.org/wiki/Same-origin_policy)並調整您的phonegap和xmlhttp請求URL。 – blue

回答

0

PhoneGap沒有PHP服務器。

在你的代碼試圖加載位於本地主機的PHP頁面:var url = "http://localhost/php-handyAPP/phpinfo.php";

本地主機在這種情況下是你的模擬器,我想這模擬器上沒有一個PHP服務器。

如果PHP本地計算機(其中仿真器是從RAN)上託管,那麼你可以嘗試:

var url = "http://10.0.2.2/php-handyAPP/phpinfo.php";代替,但我不看好它會奏效。

可能重複:Android SDK Connect to Web Server on Host

+0

我的PHP(xampp)。託管在我的機器上(模擬器也在運行)。你是對的它不適用於 var url =「http://10.0.2.2/php-handyAPP/phpinfo.php」; 或 var url =「http://127.0.0.1/php-handyAPP/phpinfo.php」; – murat

0

您應該添加在PHP文件的代碼,你要調用

<?php header('Access-Control-Allow-Origin: *'); ?>

添加它,它會肯定工作。

+0

我已經測試過了,但不幸的是不再工作。 – murat

+0

嘗試與ajax jquery它將會工作我不知道javscript ajax所以試圖做到這一點。 – Sri

+0

好的我在這裏搜索一個例子jquery,ajax與PHP – murat