2016-07-22 103 views
0

我在laravel 5.2中使用jquery和ajax的编译后系统。当我在我的引导模式点击保存更改按钮,会显示以下错误:在laravel中使用jquery和ajax的500内部服务器错误5.2

Error: POST http://localhost:8000/edit 500 (Internal Server Error)

send @ jquery-1.12.0.min.js:4

ajax @ jquery-1.12.0.min.js:4 (anonymous function) @ myplace.js:24

dispatch @ 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> 
+0

'内部服务器Error'是告诉你,你应该你的服务器的方式读它的日志文件。这是唯一可以找到有用的调试信息的地方。 – Oldskool

+0

@Oldskool我的日志文件:http://laravel.io/bin/E31Qy –

+0

看起来您的CSRF令牌无效。另请参阅http://stackoverflow.com/questions/32738763/laravel-csrf-token-mismatch-for-ajax-post-request – Oldskool

回答

2

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

首先添加一个meta标签

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

然后调整AJAX设置

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

或者也可以简单

$.ajaxSetup({ headers: { 'csrftoken' : '{{ csrf_token() }}' } }); 
+0

非常感谢,它工作! –

+0

救了我很大的时间!谢谢老兄!!!!! –

相关问题