Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax调用返回SyntaxError:输入意外结束_Javascript_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Javascript Ajax调用返回SyntaxError:输入意外结束

Javascript Ajax调用返回SyntaxError:输入意外结束,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我正在开发一个非常简单的记事本应用程序。 用户可以获取“一个文件”(实际上它只是MySQL中的一行)来编辑它。 将表单直接提交到php文件时(只需删除e.preventDetfault),输出是我想要的json编码输出: {"data":{"filename":"testfile","content":"this is the file content","lastupdate":"2016-03-06 13:13:30"}} 但是,当运行下面的Ajax调用时,它总是返回SyntaxError

我正在开发一个非常简单的记事本应用程序。 用户可以获取“一个文件”(实际上它只是MySQL中的一行)来编辑它。
将表单直接提交到php文件时(只需删除e.preventDetfault),输出是我想要的json编码输出:

{"data":{"filename":"testfile","content":"this is the file content","lastupdate":"2016-03-06 13:13:30"}}
但是,当运行下面的Ajax调用时,它总是返回SyntaxError:输入的意外结束。

形式

<form id="openfile" action="backend.php" method="POST">
<input type="text" name="filename" placeholder="Enter filename to open" id="filename" />
</form>
后端

      try {

        $db = new PDO(DB_DSN, DB_USER, DB_PASS);
        $sql = "SELECT `filename`, `content`, `lastupdate`
                FROM `notepad`
                WHERE `filename` = :filename
                LIMIT 1";
        $sth = $db->prepare($sql);
        $sth->bindParam(":filename", $_POST['file'], PDO::PARAM_STR);
        $sth->execute();

        if($sth->rowCount() != 0) {
          $result = $sth->fetch(PDO::FETCH_ASSOC);
           $response['data'] = $result;
          //echo json_encode($result);
        } else {
          $response['error'] = "File does not exist";
        }

      } catch(PDOException $e) {
        $response['error'] = $e->getMessage();
      }

      // Return json data
      echo json_encode($response);
我确信发送的数据是正确的(chrome开发工具->网络)


使用几乎相同的ajax调用保存文件效果很好。

您的问题类似于:

尝试为您的响应添加标题
application/json

header('Content-Type: application/json');
echo json_encode($response);

您是否尝试过将数据类型指定为Json

i、 e

数据类型:'json',

在Ajax调用中


您正在发回一个json对象,但尚未指定返回类型。

忘了提到我确实包含了该标头。
header('Content-Type: application/json');
echo json_encode($response);