简而言之:尝试使用ajax对资源控制器的方法执行POST请求时出现500内部服务器错误。
资源CurrencyController:
public function ajaxDeleteImage() {
if ($request->isMethod('ajax')) {
$path = $request->input('imgUrl');
$id = $request->input('id');
$currency = Currency::findOrFail($id);
$currency->cur_icon = '';
$currency->save();
Storage::delete($path);
return 'Deleted image!';
}
return App::abort(404);
}
这是我的路线:
/**
* ajax requests
*/
Route::any('ajax-delete-image-currency', 'CurrencyController@ajaxDeleteImage');
/**
* admin prefix
*/
Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function() {
Route::resource('request', 'ReqController');
Route::resource('currency', 'CurrencyController');
});
edit.blade.php - 我在其中创建了一个包含multipart / form-data的表单:
here are some form html code...
@section('custom_scripts')
<script type="text/javascript">
(function($) {
var thisUrl = $('input[name="image-hidden"]').val();
var currencyId = $('input[name=id]').val();
// console.log(thisUrl);
$('.del-image').click(function() {
$.ajax({
method: 'post',
url: '/ajax-delete-image-currency',
data: {imgUrl: thisUrl, id: currencyId},
success: function(data) {
console.log("removed image");
window.location.reload();
},
error: function(e) {
alert('Error' + e);
}
});
});
})(jQuery);
</script>
@endsection
问题是 - 每当我按下类.del-image
的按钮(使用ajax发送发布请求)时,我收到内部服务器错误500.
我也尝试从控制器中删除整个方法ajaxDeleteImage
。什么都没发生,同样500错误。好像post post无法在CurrencyController中访问该方法。
也许我的路线有问题?错误的排序?我读到我必须在资源控制器之上移动某些方法,因此它可以正常工作,但这不是我的情况。
请提出建议。
答案 0 :(得分:0)
这是TokenMismatchException in VerifyCsrfToken.php line 67
所以你必须用你的Ajax请求发送csrf令牌。
使用开发工具找到它 - &gt;网络 - &gt;然后点击错误 - &gt;它会显示实际的反应。
或者如果你正在使用邮递员 - 你会在回复中看到错误。