2013-07-23 97 views
0

在我的js頁面中,我想使用ajax()從php頁面獲取一些變量; 這全部由html頁面加載觸發。我試圖同時使用GET和POST,但沒有任何警報或日誌到我的控制檯,就像它應該,甚至沒有錯誤。爲什麼不是我的AJAX獲取請求工作

HTML:

<!DOCTYPE html> 
<html> 
    <head> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> 
    <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script> 
    <script src="http://XXXXXX/bn/sample.js"></script> 
    </head> 
    <body> 
     <div>Welcome! </div> 
    </body> 
</html> 

JS:(sample.js)

$(function(){ 

$.ajax({ 
     url : "http://XXXXXX/bn/sample.php", 
     type : 'GET', 
     data : data, 
     dataType : 'json', 
     success : function (result) { 
      alert(result.ajax); // "Hello world!" should be alerted 
      console.log(result.advert); 
     }, 
     error : function() { 
      alert("error"); 
     } 
    }); 

    }); 

PHP:

<?php 

    $advert = array(
     'ajax' => 'Hello world!', 
     'advert' => 'Working', 
    ); 

    echo json_encode($advert); 
?> 
+0

也許你還沒有定義'data'了嗎? – Blazemonger

+0

更重要的是,徹底刪除'data'因爲你似乎不在你的PHP文件中使用它 –

+0

sample.php實際輸出任何事情?嘗試在webbrowser中單獨使用sample.php。如果你沒有看到任何內容或內部服務器錯誤,那麼它不是你的ajax調用。 – Bil1

回答

1

您在「data:data」設置的數據是您發送給php腳本的數據。但你不發送任何。您收到的數據在您的成功功能中可用。所以打印它。 加我刪除了警報。警報是跛腳的。控制檯岩石! 。

的「$(文件)。就緒(」部分,只要您的文檔completlty加載啓動的功能,我想這是你需要什麼,並希望有

$(document).ready(function() {  
$.ajax({ 
     url : "http://XXXXXX/bn/sample.php", 
     type : 'GET', 
     data :(), 
     dataType : 'json', 
     success : function (data) { 
      console.log(data.advert); 
     }, 
     error : function() { 
      console.log("error"); 
     } 
    }); 

    }); 

編輯:刪除最後一個逗號,因爲你的陣列結束那裏。你可能想輸出之前設置一個頭。

<?php 

header('Cache-Control: no-cache, must-revalidate'); 
header('Content-type: application/json'); 


    $advert = array(
     'ajax' => 'Hello world!', 
     'advert' => 'Working' 
    ); 

    echo json_encode($advert); 
?> 
+0

您需要解釋您做了什麼。 –

+0

對不起,更正,我是一個新手... –

+0

謝謝你這工作,但爲什麼我需要添加標題? – Spilot