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

~~~

更新 我将&lt;meta name="csrf-token" content=" csrf_token() "&gt; 和以下内容添加到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 内部服务器错误

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

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

ajax post 返回 laravel 错误 500(内部服务器错误)

内部服务器错误 500 Laravel 5.4 AJAX

Laravel 5.7 ajax 请求 500(内部服务器错误)