javascript
  • php
  • jquery
  • ajax
  • 2017-04-02 50 views 0 likes 
    0

    我試圖製作一個聊天程序,但我堅持可能是最簡單的方面的PHP。 我在app.js

    var msg = "123"; 
    $.post('index.php', {send: msg}); 
    

    下面的代碼和index.php文件

    <?php 
    switch($_SERVER['REQUEST_METHOD']) 
    { 
        case 'GET': 
         echo "<script type='text/javascript'>alert('GET');</script>"; 
         break; 
    
        case 'POST': 
        $msg = $_POST['send']; 
        echo "<script type='text/javascript'>alert('POST');</script>"; 
    
    } 
    ?> 
    

    下面的代碼只提醒我,加載頁面時,我收到了「GET」請求。每當我在app.js中調用$ .post函數時,都不會發生任何事情。我不知道服務器是否存在問題,或者如果我的index.php文件鏈接了請求中的錯誤?

    回答

    2

    問題是,jquery $.post函數將發送請求到網站,但然後將不會神奇地顯示網站輸出 - 如果你不告訴它做的東西與來自調用的輸出贏得了'不要做任何事情。

    得到它的輸出從網站的響應,嘗試做這樣的事情:

    var msg = "123"; 
    
    $.post('index.php', {send: msg}, function(response) { 
        alert(response); 
    }); 
    

    這提供了一個回調功能jQuery的POST請求,指示其如何處理從響應網站。

    jQuery post documentation

    Example

    +0

    在PHP情況下POST回波假定運行JavaScript。它工作onload的情況下「GET」,一般情況下,如果我只是把回聲你是說如果我在$ .post()調用期間回聲它不會添加JavaScript,而是將響應發送回$。後()? –

    +1

    jQuery的'.post'調用以異步的方式向網站發送響應,並且不會將瀏覽器重定向到頁面。它在後臺執行它,然後從服務器讀取響應並將其傳遞到回調函數中進行處理。 這是jQuery處理其處理的方式,而不是服務器處理它的方式。如果您使用普通的HTML發送了POST請求,則您將獲得與GET請求相同的JavaScript響應。在這個例子中,你會在函數內部得到一個響應,並且可以在那裏寫入額外的javascript。 – CynePhoba12

    相關問題