

InstascanをもちいてQRコードを読み込み、その値をもちいて処理を行うプログラムを作成しておりJSON形式で値を得たいのですがphpの中身がまるごと返てきてしまっています(以下のエラーが出ます)。

[code]

    SyntaxError: Unexpected token < in JSON at position 0
    
[/code]

以下のajaxはInstascanで読み込んだあとに実行され、idには読み込んだQRコードの値(数字限定)が入るようになっています。

どのような変更を行えば良いかご教授願います。

[code]

    $.ajax({
     type: "POST",
     url: "search.php",
     data: { "id": id },
     dataType: "json",
    }) .done (function(data, textStatus, jqXHR) {
     console.log("OK!!");
     console.log(data.name);
    }) .fail (function(jqXHR, textStatus, errorThrown) {
     console.log("Error!!");
    });
    
[/code]

search.php

[code]

    <?php
     $id = $_POST["id"];
     $name = 'ブックマーク';
     //SQLでidを処理し、一致するnameを返す予定。
     $arr = array(
      'id' => $id,
      'name' => $name
     );
     header('Content-type:Application/json; charset=utf8');
     echo json_encode($arr);
    ?>
    
[/code]

\--追記--  
簡易的なプログラム(一部省略)を書いて試しましたが上のプログラムと同様のエラーが発生しうまく行きません。  
ちなみにphp単体で叩くと

[code]

    {"id":null,"name":"ブックマーク"}
    
[/code]

このように適切にjson形式で返ってきます。

index.html

[code]

    <!DOCTYPE html>
    <html lang="ja">
    <head>
    <meta charset="utf-8">
    </head>
    <body>
    <input type="button" value="ボタン">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script>
    $(function() {
        $("[type=button]").on("click", function() {
          $.ajax({
            type: "POST",
            url: "sample.php",
            data: {"id": "020001"},
            dataType: "json"
          }) .done (function(data) {
            console.log("ok");
            console.log(data.name);
          }) .always(function(){
            console.log("hahaha");
          });
        });
    });
    </script>
    </body>
    </html>
    
[/code]

sample.php

[code]

    <?php
      $id = $_POST["id"];
      $arr = array(
        "id" => id,
        "name" => "ブックマーク"
      );
      header("Content-type:Application/json;charset=utf8");
      echo json_encode($arr);
    ?>
    
[/code]


CC BY-SA 3.0
2017-10-18T14:49:35.173
38841
2017-10-18T18:28:32.803
2017-10-18T18:28:32.803
19827
19827
question
javascript php jquery json ajax
jQuery.ajaxを用いた通信での戻り値の問題