Оказывается, я не изменил «получить» на «пост» в моем маршруте с использованием фреймворка Laravel. У меня было:
Route::get('/administrator/change_member_id', 'AdministratorController@changeMemberID')->middleware(CheckLogin::class);
Это должно было быть:
Route::post('/administrator/change_member_id', 'AdministratorController@changeMemberID')->middleware(CheckLogin::class);
Затем я наткнулся на другую проблему, когда вообще не мог подключиться к серверу.
Оказывается, URL в AJAX был недостаточно точным. У меня было:
url:"/administrator/change_member_id/"
Но он должен быть точно таким же, как маршрут (выше), у которого не было косой черты в самом конце:
url:"/administrator/change_member_id"
Затем я немного поиграл и понял, что URL в AJAX приведет к ошибке соединения, если у меня будет косая черта в самом конце, независимо от URL в маршруте. URL в маршруте может или не может иметь косую черту в самом конце. Так что я не знаю, связано ли это с техническими особенностями POST с URL, например, как GET использует строку запроса (будет иметь косую черту в самом конце), а POST - нет. Или, может быть, это какая-то ошибка в дизайне AJAX, из-за которой POST не так гибок, как GET?
РЕДАКТИРОВАТЬ : Так как я использую Laravel Framework, я думаю, что есть такая вещь, как защита CSRF, поэтому мне пришлось добавить один из:
data: {
_token: "{{ csrf_token() }}"
},
или
headers: {
"X-CSRF-TOKEN": "{{ csrf_token() }}"
}