php - 如何在使用 Ajax 将数据插入数据库时修复 500 内部服务器错误
问题描述
我对插入模块有疑问,为什么响应显示 Internal Server Error 500 ?前端有问题吗?这是否意味着网站出现问题?但是我尝试了 ajax 正在工作的更新内容模块。但是在我的插入模块中,ajax 给出了错误。为什么会这样?有人可以帮我解决这个问题吗?谢谢你。
前端阿贾克斯:
$(document).ready(function(){
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
const email = localStorage.getItem('email');
$('#hidden_auth_user').val(email);
$('.about_psmid_button').on('click',function(){
const about_psmid_page = $('#about_psmid_page').val();
const about_psmid_title = $('#about_psmid_title').val();
//const about_psmid_content = $('#about_psmid_content').val();
const hidden_auth_user = $('#hidden_auth_user').val();
const ck_editor_content = CKEDITOR.instances['about_psmid_content'].getData();
const data = new FormData();
data.append('about_psmid_page',about_psmid_page);
data.append('about_psmid_title',about_psmid_title);
data.append('about_psmid_content',ck_editor_content);
data.append('hidden_auth_user',hidden_auth_user);
Swal.fire({
title: 'Are you sure to add this content?',
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#008B74',
confirmButtonText: 'Okay'
}).then((result) => {
if (result.value) {
$.ajax({
url:'./Function/aboutPMSIDAddFunction.php',
data:data,
type:'POST',
dataType:'JSON',
processData: false,
contentType: false,
success:function(response){
Swal.fire(
'Success!',
'Data information has been saved.',
'success'
)
if(response == 'Successfully Inserted') {
location.reload();
}
},
error:function(response) {
console.log(response);
}
});
}
})
});
});
后端 PHP:
<?php
require_once('../ConnectionString/require_db.php');
session_start();
//submit function
if(isset($_POST['about_psmid_page']))
{
$about_psmid_page = $_POST['about_psmid_page'];
$about_psmid_title = $_POST['about_psmid_title'];
$about_psmid_content = $_POST['about_psmid_content'];
$hidden_auth_user = $_POST['hidden_auth_user'];
$now = (new \DateTime())->format('Y-m-d H:i:s');
$stmt = $db->prepare('INSERT INTO tblcontent (title, content, posted_by, when_inserted, posttype) VALUES (?,?,?,?,?)');
$stmt ->bind_param('sssss', $about_psmid_title, $about_psmid_content, $hidden_auth_user, $now, $about_psmid_page);
$stmt ->execute();
echo json_encode('Successfully Inserted');
}
?>
解决方案
首先,您需要调试一个问题。最短的方法是启用错误报告。您可以在 php 文件的顶部添加这些行
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
但是看起来你在解析 json 数据时是错误的。要接收json
数据,您应该获取以下内容php://input
$data = json_decode(file_get_contents("php://input"));
if(isset($data['about_psmid_page'])) {
...
推荐阅读
- python - 使用 Python 的 IsoDep 卡
- json - OPENJSON 中的动态枢轴
- python - Pyarrow 不适用于 Python 3.8 ModuleNotFoundError AttributeError
- python - Python 会话 SAMESITE=None 未设置
- hyperledger-fabric - 配置双头 CA
- r - 如何在 R Shiny dataTable 中添加新行而不刷新表中现有的选定数据变量
- javascript - 在Angular 6中将两个json合并为一个
- reactjs - 如果 ReactJS 出现错误,我们如何显示和错误符号(如“!”)?
- python - 我创建了一个有多个敌人的游戏太空入侵者
- python - 我得到`pyiboot01_bootstrap` pyinstaller错误