Php 尽管创建了令牌,但Laravel Ajax在500内部服务器错误中运行
我用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
<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);
});