2013-02-06 195 views
0

我在我的CI應用程序的index.php中有一個AJAX腳本。我只是試圖返回一個簡單的字符串在這一點上我的測試。我爲此使用以下代碼:ajax調用CodeIgniter頁面返回結果「一個空字符串」

<script> 
    $(document).ready(function() { 
     $.ajax({ 
      type: 'POST', 
      url: 'index.php/loader/opc_client', 
      dataType: 'json', 
      cache: false, 
      success: function(data) { 
       console.log(data); 
       $('#opc-results').html(data.test); 
      } 
     }); 
    }); 
</script> 

此調用中的url是獨立文件,並帶有它自己的控制器。當我在瀏覽器中直接訪問這個文件時,它會正常加載並返回預期的結果。以下是我的PHP代碼:

<?php echo json_encode("test"); ?> 

我可以看到結果後在Firebug的功能被觸發後,但Firebug窗口只顯示在console視圖下POST「空字符串」

任何線索?我不明白這一點...

更新:如果我console.log('success')在AJAX調用成功參數,它會記錄它正確因此出於某種原因data是空

+0

您要發送的數據在哪裏?數據:? – 2013-02-06 20:31:14

+0

在這個特定的例子中,我不需要發送任何數據。 –

回答

1

你不應該只是json_encode一個字符串,雖然技術上PHP可以處理字符串作爲數組,但我猜在這種情況下事情變得怪異。只需將它包裝在一個數組中,當你完成測試時,使用鍵值對可能會更好,因爲它使客戶端的事情更容易處理,即obj.property。

試試echo json_encode(arrray('test'));

+0

哇,太簡單了...馬上工作。謝謝! –

相關問題