2014-01-31 60 views
1

我想獲取在php文件中回顯的Json數組。問題是,當我在客戶端執行$ .getJSON我得到錯誤:

SyntaxError: JSON.parse: unexpected character, return window.JSON.parse(data + ""); 

代碼: PHP:

echo json_encode($responseVar); 

JSON數組是在源可見:{ 「響應」:0}

JS:

$.getJSON('../views/application.php', function(data) { 
    alert('alert1'); 
    if(data) { 
     document.write(data.resp); 
     alert('alert2'); 
    } 
    else { 
     alert('error'); 
    } 
}) 
.fail(function(j,t,e) { 
    console.error(e); 
}); 

我沒有得到任何警告,我只是得到所描述的錯誤。

+0

obviuos下一步是發佈JSON而不是代碼。搜索谷歌在線JSON驗證 – mplungjan

+0

只是一個想法:你設置的內容類型爲application/JSON? – sjkm

+0

我設置了它,但它仍然不起作用 – Erik

回答

0

嘗試把它放在一個函數:

function getJsonArray() 
    { 
    var URL="/URL"; 
    $.ajax(
     { 
     type  : "GET", 
     url   : processURL, 
     cache  : false, 
     dataType : "json", 
     success  : function (Put the array name here) 
      {Do Something with the array }}; 
0

多種原因:

  • 的BOM編碼:關閉BOM(編碼UTF-8無BOM)的文本編輯器。 BOM是UTF8文件開始時的系統(不可見)符號。

  • jQuery的1.4起,JSON數據以嚴格的方式解析。任何格式錯誤的JSON都會被拒絕並引發解析錯誤。正確設置標題:

    header('Cache-Control: no-cache, must-revalidate');

    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');

    header('Content-type: application/json');

  • 來自服務器的錯誤狀態碼。