繁体   English   中英

Laravel Ajax返回500(内部服务器错误)

[英]Laravel ajax returns 500 (Internal Server Error)

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";
        }
    }
}
~~~

更新
我在sample.blade.php添加了<meta name="csrf-token" content="{{ csrf_token() }}">以及以下内容。 但是,它不能解决问题。

$.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中。 但是,如果您想看到“现场”错误,请执行以下操作。 提交之前,请打开开发者控制台并转到“网络”选项卡。 提交ajax请求。 然后,您会在网络标签中看到红色的请求。 单击它,在右侧有预览选项卡。 在预览选项卡中将是laravel格式的消息。 希望这对您的调试有所帮助

<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 5中的ajax发布返回错误500(内部服务器错误) -500-internal-server-error?rq = 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM