2015-10-08 58 views
1

我的問題可能很簡單,但我不能找到它錯誤的地方。我正在做一些用於練習和學習的ajsx/jQuery代碼,但jQuery和AJAX對我來說有一個奇怪的事情。我找不到任何有關dataType的完整信息,以及如何檢索和操作每種類型(text,html,json,jsonp(我不知道什麼是jsonp)等)。AJAX/jQuery與檢索JSON和數據類型的問題

我複製了HTML頁面和PHP文件中的標題,甚至是在AJAX對象中。

第一的dataType的問題:如果我要texthtml數據看來,如果我做一個.append().text()似乎它會將所有的PHP文件字面上,它在警報或HTML文件編寫,病毒複製所有的PHP代碼,即使我只想檢索我在我的PHP文件中迴應的東西。

有時我做echo "test";,如果我做了一個警報提取數據檢索爲文本或HTML它將輸出test";作爲PHP文件的最後一行回聲。所以這個dataType的東西讓我感到困惑。

然後是AJAX/JSON問題。我正在複製簡單的代碼,以便您可以看到問題所在。該代碼是爲了測試而編寫的簡單代碼,因爲我不想讓其複雜化,直到我確定基本的東西能夠工作。

HTML文件:

<!DOCTYPE HTML> 
<html> 
<head> 
    <meta http-equiv="Content-type" value="text/html; charset=UTF-8" /> 
    <title></title> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
      //Guardar al cargar la pagina la ip en el servidor. 
      var a1 = { 
       url: "servidor_datos.php", 
       async: true, 
       type: "GET", 
       contentType: "application/json; charset=utf-8", 
       dataType: 'json', 
       success: function(data){ 
        alert(data); 
        //$("#contador").append("test"); 
       }, 
       error: function(){ 
        alert("Error"); 
       } 
      }; 

      $.ajax(a1); 
     }); 
    </script> 
</head> 
<body> 
    <div id="contador"></div> 
</body> 
</html> 

php文件:

<?php 
header('Content-Type: application/json; charset=utf-8'); 
$json = array("data" => "asdf"); 
$json = json_encode($json); 
echo $json; 

我試圖做一個唯一的IP訪客計數器和我不知道如果我做正確。首先我檢查IP是否存在,如果不存在,我將新的IP添加到數據庫中。然後,我每5秒執行一次使用setInterval的Ajax請求,以不斷檢查和更新唯一訪問者的數量並異步更新它。

可以使用setInterval來不斷循環和檢查嗎?或者我應該以另一種方式來做,如服務器事件觸發檢查訪問者數量並異步發送的代碼片段?不管它是什麼,我都希望它在不刷新頁面的情況下進行更新。所以我不知道一個服務器是否發送了事件或JavaScript web工作者應該是一個更好的方法。

+0

什麼問題? –

+1

它提醒什麼?如上所述,我們沒有看到任何問題 – stanley1943

+0

包括有關當前輸出和期望輸出的信息對幫助某人回答這個問題很有用。 –

回答

0

如果此Ajax請求跨域,您可能會使用dataType:「JSONP」,因爲您可能有CORS問題。也看看使用

$ .getJSON(「servidor_datos.php」)。done(function(data){console.log(data)});

使用console.log()查看PHP腳本返回到瀏覽器的內容。在瀏覽器檢查器中打開控制檯選項卡。

此外,要訪問您的PHP數組中的索引數據,您將需要console.log(data.data)來獲取值。

+0

謝謝。但是我不得不說我足夠愚蠢,忘記通過本地主機來測試我的代碼,所以它無法運行。現在,它工作得很好。 – Lorthas

+0

很高興給你整理! – nathanlord