在 laravel 5.2 中使用 jquery 和 ajax 出现 500 内部服务器错误

Posted

技术标签:

【中文标题】在 laravel 5.2 中使用 jquery 和 ajax 出现 500 内部服务器错误【英文标题】:500 internal server error using jquery and ajax in laravel 5.2 【发布时间】:2016-11-26 04:59:24 【问题描述】:

我正在 laravel 5.2 中使用 jquery 和 ajax 构建编辑帖子系统。当我在我的引导模式中单击保存更改按钮时,会显示以下错误:

错误:POST http://localhost:8000/edit 500(内部服务器错误)

发送@jquery-1.12.0.min.js:4

ajax@jquery-1.12.0.min.js:4(匿名函数)@myplace.js:24

调度@jquery-1.12.0.min.js:3

r.handle@jquery-1.12.0.min.js:3

js代码:

$('#modal-save').on('click' , function() 

 $.ajax(

 method : 'POST' ,
 url : url ,
 data:  body: $('#post-body').val(), postid: '' , _token: token )

.done(function(msg) 

console.log(msg['message']);

    );
  );

包含在视图文件中:

    <script>
    var token=' Session::token() ';
    var url='  route('edit') ' ;
  </script>


 <script   src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>

 <script   src="https://code.jquery.com/jquery-migrate-1.2.1.min.js" ></script>
   <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
  <script src="src/js/myplace.js"></script>

【问题讨论】:

Internal Server Error 是您的服务器告诉您应该阅读它的日志文件的方式。这是您唯一可以找到有用的调试信息的地方。 @Oldskool 我的日志文件:laravel.io/bin/E31Qy 看起来您的 CSRF 令牌无效。另见***.com/questions/32738763/… @Oldskool ya ty ,但我已经实现了该方法但同样的错误。 【参考方案1】:

您的 csrf 令牌似乎有问题。在进行 ajax 调用之前,只需更改您的 ajax 设置并将令牌放入您通过 ajax 发送的每个标头中。这应该可以解决您的错误。

首先添加一个元标记

<meta name="_token" content=" csrf_token() ">

然后调整ajax设置

$(function () 
    $.ajaxSetup(
        headers:  'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') 
    );
);

甚至更简单

$.ajaxSetup( headers:  'csrftoken' : ' csrf_token() '  );

【讨论】:

以上是关于在 laravel 5.2 中使用 jquery 和 ajax 出现 500 内部服务器错误的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 5.2 中通过 RESTful 资源控制器使用 jQuery Ajax Post 方法将数据存储在数据库中

CORS问题无法解析jquery,laravel 5.2

Laravel 5.2 无法将跨域 jQuery 方法识别为 AJAX

如何在 Laravel 5.2 中使用资源声明路由

在 Eloquent 查询/Laravel 5.2 中使用变量

如何在 laravel 5.2 中使用多重身份验证 [关闭]