【发布时间】:2021-12-12 14:19:18
【问题描述】:
我试图在我的 Laravel 8 项目中调用一个 ajax 函数。但是在每次通话时我都会收到错误POST http://127.0.0.1:8000/getReasonForVisit 405 (Method Not Allowed)。我尝试了很多选项,例如changing post method to get, change url 等,但没有用。如果有人可以帮助我,那将很有帮助。
这是我的代码。
JS 文件
function getReasonForVisit(catId) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: 'POST',
url : '/getReasonForVisit',
data : {'catId' : catId },
dataType: 'json',
success:function(data) {
console.log(data);
}
});
}
$('#treatment-category').on('change', function (){
var catId = $(this).val();
getReasonForVisit(catId);
});
查看
<select class="form-control form-select" name="category" id="treatment-category">
<?php $categories = App::make("App\Http\Controllers\AppointmentsController")->getTreatmentCategories(); ?>
@foreach($categories as $cat)
<option value="{{ $cat->id }}">{{ $cat->category_name }}</option>
@endforeach
</select>
路线
Route::post('/getReasonForVisit', [App\Http\Controllers\AppointmentsController::class, 'getReasonForVisit'])->name('getReasonForVisit');
控制器
class AppointmentsController extends Controller
{
public function getTreatmentCategories() {
$categories = DB::table('treatment_category')->get();
return $categories;
}
public function getReasonForVisit() {
echo 111;
}
}
编辑
我确实清除了我的路由缓存。现在它显示错误CSRF token mismatch
【问题讨论】:
标签: ajax laravel laravel-8 http-status-code-405