【发布时间】:2018-06-20 06:35:54
【问题描述】:
我正在尝试制作一个使用 API 将信息存储在我的数据库中的表单。
但是文件 app.php 它没有返回任何东西。我可以在其中处理 API 与 DB 的通信。
我在前端表单的开发者扩展中收到此错误:
SyntaxError: JSON.parse: JSON 数据的第 1 行第 1 列的数据意外结束
只是为了测试,我尝试在 app.php 中执行 var_dump($response); die; 并正确显示文本。
我的app.php
<?php
namespace App;
require 'autoload.php';
if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_REQUEST['action'])) {
switch ($_REQUEST['action']) {
case 'set':
$data = new Data;
$data->name = $_REQUEST['name'];
$data->email = $_REQUEST['email'];
$data->phone = $_REQUEST['phone'];
header('Content-Type: application/json');
$response['id'] = $data->save();
return json_encode($response);
break;
default:
header("HTTP/1.0 404 Not Found");
break;
}
} else {
header("HTTP/1.0 404 Not Found");
}
我的 app.js 文件:
var data = {
name: name,
email: email,
phone: phone,
action: 'set'
};
var sentData = sendData(data);
if(sentData) {
alert("OK");
resetFields();
} else {
alert("NOT OK");
}
function sendData(data) {
$.ajax({
url: 'app/app.php',
method: 'POST',
data: data,
dataType: 'json',
success: function(response) {
return response;
},
error: function(xhr, status, error) {
return xhr.responseText
}
})
}
那么,错误在哪里?
【问题讨论】:
-
你有一个语法错误,它不会返回 json。
-
那么...它在哪里?
-
从上面可以看到
header('Content-Type: application/json); -
你也应该使用
exit(json_encode($response));而不是return json_encode($response); -
您看到的第一个错误不是那个,但是 exit() 有帮助。您可以将其发布为答案。
标签: javascript php jquery ajax oop