2017-07-30 103 views
0

PHPJSON.parse()引發意外的令牌錯誤。不知道爲什麼?

<?php 

header("Content-type: application/json") ; 
echo json_encode(array("reply" => "SOME_TEXT")) ; 

?> 

它回聲本 - >

{"reply":"SOME_TEXT"} 

的Javascript

<script> 
$.get("script.php" , function(data) { 
    var reply = JSON.parse(data) ; 
}) ; 
</script> 

JS拋出unexpected token in JSON。但它會工作正常,如果我用標題(「Content-type:text/javascript」)「text/plain」替換PHP代碼中的標題。

+1

您是否驗證過JSON有效負載? https://jsonlint.com/ –

+1

如果JS引發錯誤JSON無效 - 沒有理由不信任它。 – zerkms

+0

使用console.log(「data」+ data);看你的腳本是否得到正確的JSON代碼。 – onno204

回答

6

如果頭部設置爲application/json,jQuery會自動解析數據,因此您正在嘗試解析對象。您可以使用標頭設置爲application/json使用它沒有JSON.parse

$.get("script.php" , function(data) { 
    console.log(data.reply); 
}) ; 

由於@charlietft評論,

使用,而不是$獲得()$ .getJSON()也將確保它被解析

+2

使用'。.getJSON()'而不是'$ .get()'也會保證它被解析,並且如果不是,則會返回錯誤回調 – charlietfl

+0

謝謝! @charlietfl – baao