2017-06-16 62 views
0

我開始在phonegap上的web應用程序,我正在測試遠程服務器連接。猜猜看,它不起作用!我不知道爲什麼。 它使用的是瀏覽器,但不支持我通過腳本創建的phonegap應用程序。我查看了互聯網,論壇等,我沒有找到解釋。也許這是因爲我使用的共同服務器(OVH.FR),但我不確定...我的Ajax的PhoneGap腳本沒有連接到遠程服務器,爲什麼?

幫助!謝謝 !

這裏是我的文件:

的index.html

<!DOCTYPE html> 
    <html> 
     <head> 

<title>Test software</title> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 
<script src="./req/jquery/jquery/jquery-2.1.0.min.js"></script> 
<script src="./req/jquery/mobile/jquery.mobile-1.4.5.min.js"></script> 
<link rel="stylesheet" type="text/css" 
href="./req/jquery/mobile/jquery.mobile-1.4.5.min.css" /> 

     <script> 
    /* ------------------------------------------------ */ 
    $(document).ready(function(){ 
    $.ajax({ 
     url : 'http://test.dexterin.com/intro/introConnexion.php', 
     cache: false, 
     type : 'POST', 
     dataType : 'xml', 
     success : function(xml) { 
      $("#mainPageContent").append("<p>Connected !</p>"); 
     }, 
     error : function(xml) { 
      $("#mainPageContent").append("<p>No response from ajax</p>"); 
     } 
     }); // Fin ajax 
    }); 
    /* ------------------------------------------------ */ 
     </script> 
     </head> 
     <body> 
     <div data-role="page" data-theme="a" id="mainPage"> 
      <div role="content" class="ui-content" id="mainPageContent"> 
      <p>Initialisation du logiciel ...</p> 
      </div>  
     </div> 
     </body> 
    </html> 

config.xml中

<?xml version="1.0" encoding="UTF-8" ?> 
<widget xmlns = "http://www.w3.org/ns/widgets" 
    xmlns:gap = "http://phonegap.com/ns/1.0" 
    id   = "com.phonegap.example" 
    versionCode = "10" 
    version  = "0.0.1" > 

<!-- versionCode is optional and Android only --> 

    <name>TEST App</name> 

    <description> 
     A test for phonegap app 
    </description> 

    <author href="https://build.phonegap.com" email="[email protected]gap.com"> 
     Hardeep Shoker 
    </author> 

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

</widget> 

introConnexion.php

<? 
session_start(); 
header('Access-Control-Allow-Origin: *'); 
header("Access-Control-Allow-Methods: POST,GET"); // ,OPTION 
header("Access-Control-Allow-Headers: content-type"); 
header("Access-Control-Allow-Headers: NCZ"); 
header("Content-type: text/xml;charset=utf-8"); 
date_default_timezone_set('France/Paris'); 
echo "<?xml version = \"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>\n"; 
?> 
<root> 
<element>OK</element> 
</root> 
+0

[嘗試關於交叉域這個問題的答案(https://stackoverflow.com/questions/1201429/jquery-ajax-fails-when-url-is-from-安裝它不同服務器) –

+1

這不是我用 頭('Access-Control-Allow-Origin:*')做的事情; introConnexion.php文件中的 ? (遠程服務器上的文件) – DrPepper

+0

我使用了一個函數\t \t getXDomainRequest() with:xdr = new XDomainRequest(); 然後: xdr.onload = function(){alert(「Response:」+ xdr.responseText);} xdr.open(「GET」,「http://test.dexterin.com/intro/introConnexion.php 「); xdr.send(); 它返回一個xdr.responseText但是空的... – DrPepper

回答

0

您必須安裝白名單插件才能使訪問標記正常工作。

cordova plugin add cordova-plugin-whitelist

+0

只是一個問題:我在哪裏安裝它? ^^ – DrPepper

+0

如果您使用的是Phonegap/Cordova CLI,請轉至您的應用程序文件夾並輸入該文件夾。你也可以通過將插件添加到config.xml來安裝插件'' – jcesarmobile

+0

我做到了,而且......什麼都沒有。我在線使用phonegap builder,它告訴我插頭已安裝。 – DrPepper