【发布时间】:2016-09-16 01:37:55
【问题描述】:
Laravel ajax 返回 500(内部服务器错误)。你能告诉我是什么问题吗?
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);
}
});
});
【问题讨论】:
-
查看
/storage/logs以查看发生了什么错误并将其发布在此处。另外,如果你使用 Laravel,为什么不使用 eloquent 或 querybuilder? -
是的,检查你的日志,你马上就会知道有什么问题