Php 尽管创建了令牌,但Laravel Ajax在500内部服务器错误中运行

Php 尽管创建了令牌,但Laravel Ajax在500内部服务器错误中运行,php,jquery,ajax,laravel,Php,Jquery,Ajax,Laravel,我用Laravel制作了一个非常简单的Ajax。我想用来自控制器的消息替换单击按钮后视图中的消息 我得到一个500内部服务器错误,我搜索并发现令牌通常是错误的原因。我添加了一个,但它仍然不起作用。有人以前有过这个问题吗 <script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"> </script> <script> $(document).ready

我用Laravel制作了一个非常简单的Ajax。我想用来自控制器的消息替换单击按钮后视图中的消息

我得到一个500内部服务器错误,我搜索并发现令牌通常是错误的原因。我添加了一个,但它仍然不起作用。有人以前有过这个问题吗

<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
<script>
    $(document).ready(function(){
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    })

    function getMessage(){
        console.log('test');
        $.ajax({
            type:'POST',
            url:'ajax',
            dataType:'text',
            success:function(data){
                $("#msg").html(data.msg);
            }
        });
    }
</script>
路线:

Route::post('/home/ajax','crudController@ajax');

控制台.log
在PHP中不存在。 移除它,它应该会工作


打开
.env
文件并将
APP\u DEBUG
更改为true(
APP\u DEBUG=true
) 查看有关错误的更多详细信息。


同时尝试将ajax请求更改为:

    $.ajax({
        type:'POST',
        url:'/home/ajax',
        data: '_token = <?php echo csrf_token() ?>',
        success: function(response){
            $("#msg").html(response.msg);
        }
    });

您的Laravel设置有问题,通常您会看到如下错误消息:

拉威尔随附。axios已经在ajax方法中包含csrf_令牌

axios.post("{{ route('your_route') }}")
.then(function (response) {
    $("#msg").html(response.data.msg);
})
.catch(function (error) {
    console.log(error);
});
编辑


谢谢你的评论。我删除了它-不幸的是它仍然不起作用打开你的
.env
文件并将
APP\u DEBUG
更改为true(
APP\u DEBUG=true
)我的调试已经设置为true-但是没有关于错误的更多细节(错误在浏览器控制台中)你能在我们看到你的页面和错误消息的地方发布一个屏幕截图吗?我在描述中添加了一个链接,其中的屏幕截图
500 server error
只是一条普通消息,真正的错误将确切地告诉你哪里出了错,它将出现在你的
storage/logs/laravel.log
和/或你的Web服务器(Apache,nginx)中和/或PHP日志。真正的错误是什么?local.error:尝试获取非对象的属性{“exception”:“[object](ErrorException(代码:0):尝试在/project/source/app/Http/Controllers/crudController.php:104处获取非对象的属性)[stacktrace]这是我在日志中得到的错误-来自您的
json
响应中的
'msg'->$msg
。@Black已经在他的回答中为您修复了它。我更改了它,但没有帮助-仍然是500个内部服务器错误
    $.ajax({
        type:'POST',
        url:'/home/ajax',
        data: '_token = <?php echo csrf_token() ?>',
        success: function(response){
            $("#msg").html(response.msg);
        }
    });
public function ajax(Request $request)
{
    $msg = "This is a simple message.";
    return response()->json(array('msg'=> $msg), 200);
}
axios.post("{{ route('your_route') }}")
.then(function (response) {
    $("#msg").html(response.data.msg);
})
.catch(function (error) {
    console.log(error);
});
axios.post({{ route ('') }}, {
    firstName: 'Fred',
    lastName: 'Flintstone',
    address : 'Address example'
})
.then(function (response) {
    console.log(response);
})
.catch(function (error) {
    console.log(error);
});