簡體   English   中英

如何通過放置PHP程序的JavaScript連接到服務器?

[英]How can I connect to a server through JavaScript where my PHP program is housed?

我正在編寫一個Android應用程序,並且已經有一個用HTML和PHP編寫的工作程序。 使用二者,他們通過html頁面上的用戶自定義查找聯系API,然后將其發送到PHP頁面,通過自定義搜索聯系API,獲取結果,然后php再次輸出到html頁面。

我知道PHP無法在Android上運行,但我計划使用PhoneGap。 使用PhoneGap,我可以運行JavaScript,HTML和CSS。 我還讀到,Android無法理解PHP的解決方案是連接到可以為我運行php的服務器(我的計算機),然后以電話可以理解的方式輸出它。

我的計划是使用PhoneGap可以理解的JavaScript連接到我的計算機,並使其運行PHP並以HTML格式輸出頁面,PhoneGap可以再次理解。

如果這很荒謬,請讓我知道...否則,如果有人可以向我推向JavaScript函數以正確的方向推動我進行身份驗證,連接到計算機並告訴我,我將不勝感激。 d喜歡使用某個PHP文件。

在為Android和iOS開發應用程序時,我們遇到了完全相同的問題。 就像Austin告訴您的那樣,您必須使用AJAX。

W3schools-AJAX

但是,我建議您不要僅在一些簡單的事情上使用jquery,因為由於必須加載很大的腳本,它相當繁重。 因此,如果您可以減少代碼量,請通過學習真正的JavaScript而不是jQuery來實現。

另外,我們所做的是編寫我們自己的APIRequest.js對象。 像這樣調用該對象時:

var result = new APIRequest('functionname', {param1:value, param2:value})

這是連接到您的php的相當簡單的方法,它將在國外或您的PC上的服務器上正常運行。 如您所見,我們插入了一個函數名,我們已經將API開發為一個非常簡單的OOP php,它允許我們將functionname.php放在某個文件夾中,並且可以通過腳本讀取,然后選擇該函數。 數據庫連接和類似的東西將在api的索引中排列。 通過這種方法,您可以在服務器端為每種獨特的處理提供特殊功能。

我告訴你這是因為您正在使用JavaScript。 我希望您了解它不安全! 它與計算機上的JavaScript應用程序一樣安全。 黑客有可能將.apk下載到他的計算機上,在他的PC上的模擬器中運行它,並通過控制台進行編輯。 因此,他可以更改整個代碼(至少JavaScript部分)。 因此,請確保您嘗試使用諸如此類的鑰匙和東西使之成為可能。 另外,請嘗試在服務器上執行盡可能多的邏輯,以使邏輯不能更改。 僅輸入API的輸入參數。

希望對您有所幫助!

在這里,您將需要使用AJAX。 jQuery具有一個稱為$.ajax的出色包裝函數,該函數使大部分過程變得非常簡單明了。

AJAX將向任何文件(您的情況下為php文件)發送異步請求,並使用接收到的數據觸發回調函數。 (同步也是可以的,但不建議這樣做,因為它會使您的應用程序掛起,直到請求完成為止。 有關不建議這樣做的更多信息,請參見

有關此處涵蓋的主題的一些不錯的讀物:

您要使用的基本技術是AJAX,這是用於通過Java腳本通過HTTP進行服務器調用的術語。 您可以使用XML(AJAX中的X)或使用其他編碼(例如JSON)在服務器之間傳遞數據。

您將在服務器上需要一個專用的PHP文件,該文件將理解您在AJAX帖子中發送的數據,而不是生成HTML來生成Javascript將使用的XML /其他格式。

最好的選擇可能是創建一個瀏覽器應用程序,該應用程序通過AJAX與您的服務器通信,並在工作時將其移植到PhoneGap。

很簡單 只需對PHP頁面執行GET請求並解析結果即可。 創建一個函數使其更容易:

function httpGet(theUrl){
    var xmlHttp = null;
    xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", theUrl, false );
    xmlHttp.send( null );
    return xmlHttp.responseText;
}

然后,您可以調用它並獲取生成的HTML代碼。

var url = 'http://yourpage/index.php?a=something&b=otherthing';
var page = httpGet(url);

暫無
暫無

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

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