簡體   English   中英

如何使 Phonegap 連接到本地主機

[英]How to make Phonegap connect to localhost

我第一次使用 phonegap 構建帶有后端(php、mysql)的混合移動應用程序。 所以我正在測試phonegap如何連接到本地主機上的php來發送和檢索數據。 但是沒有檢索到數據,我已將我的代碼減少到此,並且我在 ajax 調用和 php 代碼中都沒有發現錯誤。 所以我想這應該是phonegap連接到后端的方式我弄錯了,請幫忙。

html 形式和 ajax 調用:

        <form id="form1">
       <input  type="text" id="email"  />
         <input  type="password" id="password"  />
         <input type="submit" name="login" id="login" value="Login">  
        </form>

      <script type="text/javascript">
      $("form").submit(function(){
         var data= ("#form1").serialize();
       $.post("http://localhost/securityapp/login.php",data,function(response){
     alert(response);
       });

        });

      </script>

php 文件:

          <?php
           include 'db.php';
      session_start();
     if ($_POST ) {
     echo $_POST;

        }


           ?>

基本上它是為了提醒發送到 php 腳本的值作為響應,但它沒有這樣做,網絡選項卡顯示狀態為 200。 我究竟做錯了什么? 我覺得 phonegap 沒有連接到定義的 url

這就是我解決這個問題的方法:

  1. 在包含服務器當前 URL/IP 的數據庫上創建了一個表

  2. 創建了一個 check-url.php 文件,該文件在數據庫上運行查詢以查看服務器的 IP/URL

  3. 我創建了一個 connection.js 文件,該文件基本上向 check-url.php 發出請求,以獲取服務器的當前 IP 以在 Cordova 應用程序中使用

檢查-url.php


 header("Access-Control-Allow-Origin: *"); //to allow phonegap access it because of cross origin and domain restrictions
 require 'db.php';
 $query= "SELECT url  FROM settings";
 $query= mysqli_query($conn,$query);
 $row = mysqli_fetch_assoc($query);
 $row= $row['url'];
 echo $row; //current IP exmaple:http://127.0.0.1:80/

連接.js

  //check current server ip from database
export function check_url(callback) {
  var httpRequest = new XMLHttpRequest();
  httpRequest.onreadystatechange = function() {
      if (httpRequest.readyState === 4) { // request is done
          if (httpRequest.status === 200) { // successfully
              callback(httpRequest.responseText); // we're calling our method
          }
      }
  };
  httpRequest.open('GET', "http://127.0.0.1:80/projectname/check-url.php");
  httpRequest.send();
}

So any time I want to connect to backend by Cordova I import the function check-url() from connection.js into my front-end ajax request url like this:

<script type="module">
   import {check-url} from './connection.js';

check-url(function(result) {
var currentIP= result;
$.ajax({
type:"POST",
url: currentIP + "projectapp/login.php",
data:data,
success: function(data){
//do something
}
});
});
</script>  

注意:connection.js、數據庫和服務器 IP 中的 URL/IP 應該相同,因為這可以幫助您不要總是重復 IP 並且還可以測試使用 PhoneGap 移動設備時以及切換到 live 時,將其更改為您項目的當前 IP 地址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM