1. ホーム
  2. ajax

Uncaught SyntaxError: 位置 0 で JSON の予期しないトークンです。

2022-02-16 21:02:39

Win7 OS php5.4とphpstorm8.3(編集・デバッグ可能なphp IDE)の開発トラブル。

$(function(){ <未定義
    var g_table = $("table.data");
    var init_data_url = "data.php?action=init_data_list";
    $.get(init_data_url,function(data){) <未定義
        var row_items = $.parseJSON(data); //以下のエラーを報告します。
        for( var i = 0 , j = row_items.length ; i < j ; i++ ) {。 <未定義
            var data_dom = create_row(row_items[i]);
            g_table.append(data_dom)を実行します。
        }
    });

エラーの報告

Uncaught SyntaxError: JSON の位置 0 に予期しないトークン < があります。

(翻訳 Uncaught SyntaxError: jsonデータの位置0に予期しないトークンが見つかりました <)

    at Function.parse [as parseJSON] (<匿名>)
    at Object.success (course.js:5)
    at fire (jquery-3.1.1.js:3305)
    at Object.fireWith [as resolveWith] (jquery-3.1.1.js:3435)
    at done (jquery-3.1.1.js:9242)
    at XMLHttpRequest.<anonymous> (jquery-3.1.1.js:9484)

理由: jsonフォーマットエラー

           echo json_encode($data,true); ではデータ文を返しますが、echo json_decode($data) ではデータ文を返します。

           関数を正しく使用していないため、返されるデータはjsonデータではなく、最初の文字が " <" となっており、Unexpected token < in JSON at position 0(訳:jsonデータの位置0に認識できないトークンが見つかった < )というエラーが報告される。.      

json のチュートリアルは、http://www.w3school.com.cn/json/index.asp でご覧になれます。

jsonのサンプルは以下の通りです。

{ <未定義
従業員数(quot) [
{ "firstName":"Bill" , "lastName":"Gates" }.
{ "firstName":"George" , "lastName":"Bush" }.
{ "firstName":"Thomas" , "lastName":"Carter" }.
]
}
解決策

echo json_encode($data,true) に変更します。

これが問題でない場合、PHPファイルが標準のjson形式で返されるデータデータを与えているかどうかチェックしてください。phpファイルにvar_dump、echo、コメントなどがある場合、返されるjsonデータに影響を及ぼします。

このエラーは基本的にデータjsonのフォーマットの問題ですので、デバッグしてブラウザ内で確認してください。
--------------------- 
著者:wyx100 
出典 CSDN 
元記事: https://blog.csdn.net/wyx100/article/details/55802812 
著作権について これはブログ主のオリジナル記事です。ブログ記事へのリンクを貼ってください