JSON.parse()抛出意外的令牌错误。不知道为什么?

时间:2017-07-30 19:57:20

标签: javascript php json

PHP

<?php

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

?>

它回应了这个 - &gt;

{"reply":"SOME_TEXT"}

的Javascript

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

JS抛出unexpected token in JSON。但是如果我用PHP代码替换标题,那么它将正常工作(&#34;内容类型:text / javascript&#34;)或&#34; text / plain&# 34;

1 个答案:

答案 0 :(得分:6)

如果标头设置为application/json,jQuery会自动解析数据,因此您尝试解析对象。如果标题设置为JSON.parse,则可以在没有application/json的情况下使用它:

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

正如@charlietft评论的那样,

  

使用$ .getJSON()而不是$ .get()也可以确保它被解析