Laravel ajax 返回 500(内部服务器错误)
Posted
技术标签:
【中文标题】Laravel ajax 返回 500(内部服务器错误)【英文标题】:Laravel ajax returns 500 (Internal Server Error) 【发布时间】:2016-09-16 01:37:55 【问题描述】:。你能告诉我是什么问题吗?
sample.brade.php
<script type="text/javascript">
$("input.dog_check").click(function()
var amount = 10000;
var dataString = 'amount='+amount;
console.log(dataString);
$.ajax(
type:'POST',
data:dataString,
url: 'save_temporary_data',
success:function(data)
alert(data);
);
);
</script>
routes.php
Route::post('/save_temporary_data', 'PaymentsController@saveTemporaryData');
PaymentsController.php
~~~
public function saveTemporaryData()
if (Request::ajax())
$amount = $_POST['amount'];
$insert = "insert into temporary_data values('$amount')";// Do Your Insert Query
if(mysql_query($insert))
echo "Success";
else
echo "Cannot Insert";
~~~
更新
我将<meta name="csrf-token" content=" csrf_token() ">
和以下内容添加到sample.blade.php
中。然而它不能解决问题。
$.ajaxSetup(
headers:
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
);
sample.blade.php
<head>
<link rel="stylesheet" href="/css/header.css">
<link rel="stylesheet" href="/css/common.css">
<link rel="stylesheet" href="/css/reset.css">
<link rel="stylesheet" href="/css/edit_profile.css">
<link rel="stylesheet" href="/css/footer.css">
<link rel="stylesheet" href="/css/host_profile.css">
<link rel="stylesheet" href="/css/validationEngine.jquery.css">
<meta name="csrf-token" content=" csrf_token() ">
</head>
~~~
$("input.dog_check").click(function()
var amount = 10000;
var dataString = 'amount='+amount;
console.log(dataString);
$.ajaxSetup(
headers:
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
);
$.ajax(
type:'POST',
data:dataString,
url: 'save_temporary_data',
success:function(data)
alert(data);
);
);
【问题讨论】:
可能重复http://***.com/questions/30154489/ajax-post-in-laravel-5-return-error-500-internal-server-error?rq=1 查看/storage/logs
以查看发生了什么错误并将其发布在此处。另外,如果你使用 Laravel,为什么不使用 eloquent 或 querybuilder?
是的,检查你的日志,你马上就会知道有什么问题
【参考方案1】:
参考下页即可解决。感谢ajax post in laravel 5 return error 500 (Internal Server Error)-500-internal-server-error?rq=1
【讨论】:
【参考方案2】:没有错误,任何人都无法做任何事情 您可以手动检查您的日志。在/存储/日志中。 但是,如果您想在“现场”看到错误,请执行以下操作。 在提交之前,打开开发者控制台并转到网络选项卡。 提交ajax请求。您将在网络选项卡中收到红色请求。 单击它,右侧有预览选项卡。 在预览选项卡中将显示 laravel 格式的消息。 希望这对您的调试有所帮助
【讨论】:
【参考方案3】:<meta name="csrf-token" content=" csrf_token() " />
<script>
var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
jQuery.ajax(
type:'POST',
url :"url('save_temporary_data')",
data:_token: CSRF_TOKEN,amount:amount,
success:function(data)
alert(data);
);
</script>
在路由文件中
Route::post('/save_temporary_data','PaymentsController@saveTemporaryData');
在控制器中
public function saveTemporaryData(Request $request)
echo $request['amount'];
【讨论】:
以上是关于Laravel ajax 返回 500(内部服务器错误)的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.2 ajax 返回 500 内部服务器错误