Laravel 5.6 DELETE и PUT 403 доступ запрещен - PullRequest
0 голосов
/ 13 июня 2018

Версия Laravel: 5.6

Версия PHP: 7.1

Я закончил свой проект и протестировал его локально.Но когда я загрузил его на сайт общего хостинга, я получаю две ошибки (я не уверен, что это две отдельные ошибки):

DELETE http://SomeAddress/patients/440627036 403 (запрещено)

Не удалось загрузить http://SomeAddress/patients/440627036: Нет заголовка «Access-Control-Allow-Origin» на запрошенном ресурсе.Происхождение 'http://SomeAddress' поэтому не разрешено.Ответ содержал код состояния HTTP 403.

Это была проблема с CORS, которую, я думаю, я исправил.Я получал ошибку CORS только для PUT и DELETE (я не знаю, почему POST и GET работали!).Я добавил требуемые заголовки, и эта ошибка исчезла. Это заголовки, которые я добавил:

return $next($request)
        ->header('Access-Control-Allow-Origin', '*')
        ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE, OPTIONS')
        ->header('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With')
        ->header('Access-Control-Allow-Credentials', 'true')
        ->header('Access-Control-Max-Age', '10000');

Но теперь я получаю еще одну ошибку (снова только для PUT и DELETE) - (Связано ли это с Laravel или с моим сайтом общего хостинга или с моим внутренним кодом?): My new error

Запрещено

Вы не можетеУ меня нет разрешения на доступ к / пациентам / 440627035 на этом сервере.

Моя проблема с CORS полностью решена?Как я могу исправить эти ошибки?

Интерфейс (я использую ресурс AngularJS $ для отправки своих HTTP-запросов):

this.patientRes = function () {
        return $resource(baseURL + 'patients/:id', {id: "@id"}, {
            get: {
                method: 'GET',
                isArray: true,
                headers: {'Content-Type': 'application/json'}
            },
            update: {
                method: 'PUT',
                headers: {'Content-Type': 'application/json'}
            },
            delete: {
                method: 'DELETE',
                headers: {'Content-Type': 'application/json'}
            }
        })
    };

Обновление:

Моя структура файла была такой:

public_html / public / и мои файлы были здесь

Я изменил его на:

public_html / и мои файлы теперь здесь

Теперь я получаюэта ошибка: enter image description here

1 Ответ

0 голосов
/ 13 июня 2018

Используйте этот пакет: CORS Middleware для Laravel 5

В приведенной выше ссылке приведен также шаг установки.

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