laravel 中的 Ajax 发布返回错误 500(内部服务器错误)

Posted

技术标签:

【中文标题】laravel 中的 Ajax 发布返回错误 500(内部服务器错误)【英文标题】:Ajax post in laravel return error 500 (Internal Server Error) 【发布时间】:2019-05-24 06:52:05 【问题描述】:

这是我在 laravel 中的测试 ajax(参考下文)

$.ajaxSetup(                            
    headers: 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')                          
     
);
$(".btn-submit").click(function(e)    
    var playlist = $("#playlist").val();  
    var id = '$data->id'                      
    e.preventDefault();           
    $.ajax(
        type:'POST',                            
        url:'/ajaxRequest', 
        data:playlist:playlist,id:id ,                            
        success:function(data)                            
            alert(data.success);                            
                                    
    ); 
);

这是我在 laravel 中的控制器(参考下文)

$playlist = $request->input('playlist');
$id = $request->input('id');
$playlist = Playlist::find($playlist);
$songs = $playlist->songs()->get();        
foreach ($songs as $song)
    if($id == $song->id)
        return response()->json(['success'=>'Sond Allready added']);
    

$song = Song::findOrFail($id);
$playlist->songs()->attach($song);
return response()->json(['success'=>'Playlist Updated Success']);

但是当我在谷歌浏览器中运行控制台时它给了我错误并且它没有返回预期的响应“return 'Success! ajax in laravel 5';”

我的代码有什么问题/问题?我有什么遗漏吗?

POST http://127.0.0.1:8000/ajaxRequest 500(内部服务器错误)

【问题讨论】:

你验证过路由是否真的存在吗? @Buddika 添加有问题的 web.file 这是$request->input('playlist'); 一个整数吗? 打开您的 chrome 开发者工具并检查网络选项卡。重新加载请求,直到收到 500 错误。然后在 chrome 浏览器的网络选项卡上,您可以看到实际的 500(内部服务器错误)是什么。在此处复制并粘贴该错误,以便我们为您提供更多帮助 检查服务器的error.log,它通常包含有用的信息,可以直接引导你找到问题。 【参考方案1】:

将错误处理代码添加到您的 ajax 中,看看它抛出了什么错误!

error: function(xhr, ajaxOptions, thrownError) alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);

【讨论】:

以上是关于laravel 中的 Ajax 发布返回错误 500(内部服务器错误)的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:为啥我的 ajax 请求返回“500(内部服务器错误)”?

Laravel ajax 帖子返回 500 内部服务器错误

如何从 Laravel 控制器返回 AJAX 错误?

Laravel 5.0 ajax 消息提交返回错误或超时

Ajax 在 Laravel 8 中返回 404 错误但路由存在

Laravel 5.2 ajax 返回 500 内部服务器错误