我在尝试对laravel应用程序执行POST请求时收到405:未找到方法错误。我正在尝试建立一个论坛来学习如何使用php和Laravel。
我试图发布来自/forum/category/{category}/post
的请求,我仅执行/forum
的(几乎)相同的请求,并且效果很好,所以我认为这与此有关。
这是我尝试发布请求的地方(返回post.blade.php
):
Route::get('forum/category/{category}/post', 'ForumController@showThreadPostForm');
请求:
var $form = $('form');
$form.submit((e) => {
e.preventDefault();
$.ajax({
type: "POST",
url: 'postthread',
headers: {'X-CSRF-TOKEN': $('meta[name="csrf"]').attr('content')},
data: {"test": "data"},
success: function(res) {
window.location.reload();
console.log(res);
},
error: function(xhr, ajaxOptions, thrownError) {
console.log("Error occured during AJAX request, error code: " + xhr.status);
},
});
});
路线:
Route::post('postthread', 'ForumController@postThread');
控制器方法:
public function postThread(Request $request) {
//empty
}
我不确定这些信息是否足够。 谢谢。
我在不同的页面/forum
上使用了相同的AJAX请求,该请求可以正常工作,我不确定如何使它在此页面上正常工作。
答案 0 :(得分:0)
尝试在数据中添加令牌,并在URL中添加斜杠。
还将元标记设置为:
<meta name="csrf-token" content="{{ csrf_token() }}">
$.ajax({
type: "POST",
url: '/postthread',
headers: {'X-CSRF-TOKEN': $('meta[name="csrf"]').attr('content')},
data: {"test": "data", "_token": $('meta[name="csrf"]').attr('content')},
success: function(res) {
window.location.reload();
console.log(res);
},
error: function(xhr, ajaxOptions, thrownError) {
console.log("Error occured during AJAX request, error code: " + xhr.status);
},
});