Laravel (5.4) выбрасывает 404 на действительный маршрут API - PullRequest
0 голосов
/ 22 ноября 2018

Я пытался решить эту проблему, используя различные предложения, но, похоже, ничего не работает, и, хотя возможно, я упускаю что-то действительно очевидное, я просто не понимаю, почему я получаю ошибку 404 на маршрутеэто определенно существует.

У меня есть CRM, которая среди других опций позволяет пользователю удалять «результат» (файл, прикрепленный к делу), но по какой-то причине я всегда получаю 404 при попытке его выполнить.

Вот вызов в компоненте React:

documentCollectionRepo.removeDeliverable(deliverable.id).then(showSuccess, showError);

deliverable.id определенно существует, так как я отключил консоль.

Вот функция в репо:

export function removeDeliverable(documentCollectionId) {
   return Api.remove(`document-collections/${documentCollectionId}`);
}

И, наконец, вот маршрут в файле маршрутов API:

Route::delete('document-collections/{documentCollectionId}', 'DocumentCollectionController@deleteDocumentCollection');

Когда я нажимаю кнопку Удалить, чтобы запустить соответствующую функцию, на вкладке Сеть отображается следующееошибка (IP скрыт в этой цитате):

URL запроса: http://192.168.50.52/api/v1/document-collections/3
Метод запроса: УДАЛИТЬКод статуса: 404 не найденУдаленный адрес: 192.168.xx.xx: 80Политика реферера: no-referrer-when-downgrade

Функция deleteDocumentCollection() определенно существует в файле DocumentCollectionController.php, и все остальные функции работают (включая другой маршрут удаления) - так что я не совсемпонять, почему этот маршрут не сработает.Любая помощь по этому вопросу будет принята.

РЕДАКТИРОВАТЬ:

Вот функция контроллера:

public function deleteDocumentCollection(DeleteDocumentCollectionRequest $req, $documentCollectionId)
{
    $this->documentCollectionRepository->delete($documentCollectionId);

    return response()->ok();
}

И в репо:

public function delete($fileId)
{
    $file = $this->getOne($fileId);

    $this->deleteUploadedFile($file);
    $this->deleteNotifications($file);
    $this->deleteNotes($file);

    $file->delete();
}

1 Ответ

0 голосов
/ 22 ноября 2018

Если ваш Laravel Project настроен на Apache, то может возникнуть такая проблема.

Поскольку Apache не разрешает УДАЛИТЬ запросы, поэтому ответ будет 404.

Добавьте это к.htaccess после кодов по умолчанию Laravel:

<Limit DELETE>
  Order deny,allow
  Allow from all
</Limit>

Снова это может быть возможным случаем.и если он все еще не работает, пожалуйста, поделитесь своим кодом вкратце, чтобы я мог посмотреть его.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...