2016-07-22 76 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

救了我很大的時間!謝謝老兄!!!!! –