当尝试在我的laravel应用程序上执行POST请求时,我收到了405: Method not Found错误。我正在尝试做一个论坛来学习如何使用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请求,但它起作用了,我不确定如何在这个页面上起作用。
发布于 2019-10-21 10:06:59
尝试将标记添加到您的数据,并将斜杠添加到您的url。
也可以将meta标签设置为:
<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);
},
});https://stackoverflow.com/questions/58478898
复制相似问题