首页 > 解决方案 > 如何在使用 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'); 
    }
?>

标签: phpjqueryajax

解决方案


首先,您需要调试一个问题。最短的方法是启用错误报告。您可以在 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'])) {
...

推荐阅读