РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
408 of 1392 menu

Метод options

Метод options применяется к экземпляру класса Route и регистрирует маршрут для обработки HTTP запросов с методом OPTIONS. Он принимает два параметра: путь и обработчик. В качестве обработчика может выступать замыкание или массив из контроллера и его метода. Этот метод позволяет добавлять поддержку CORS или возвращать информацию о доступных методах для конкретного URL.

Синтаксис

<?php Route::options($uri, $callback); ?>

Пример

Давайте создадим маршрут для OPTIONS запросов с помощью замыкания:

<?php use Illuminate\Support\Facades\Route; Route::options('/api/posts', function () { return response()->json([ 'methods' => ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'] ]); }); ?>

Результат выполнения OPTIONS запроса к /api/posts:

{ "methods": ["GET", "POST", "PUT", "DELETE", "OPTIONS"] }

Пример

Давайте зарегистрируем OPTIONS маршрут с использованием контроллера:

<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\OptionsController; Route::options('/api/users', [OptionsController::class, 'getOptions']); ?>
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class OptionsController extends Controller { public function getOptions(Request $request) { $allowedMethods = ['GET', 'POST', 'PATCH', 'DELETE']; return response()->json([ 'allowed_methods' => $allowedMethods, 'path' => $request->path() ]); } } ?>

Результат выполнения OPTIONS запроса к /api/users:

{ "allowed_methods": ["GET", "POST", "PATCH", "DELETE"], "path": "api/users" }

Пример

Давайте создадим маршрут для OPTIONS запросов с параметром в URI:

<?php use Illuminate\Support\Facades\Route; Route::options('/api/posts/{id}', function ($id) { return response()->json([ 'available_methods' => ['GET', 'PUT', 'DELETE'], 'post_id' => $id ]); }); ?>

Результат выполнения OPTIONS запроса к /api/posts/5:

{ "available_methods": ["GET", "PUT", "DELETE"], "post_id": "5" }

Пример

Давайте используем метод options для настройки CORS заголовков:

<?php use Illuminate\Support\Facades\Route; Route::options('/api/secure-data', function () { return response('') ->header('Access-Control-Allow-Origin', '*') ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE') ->header('Access-Control-Allow-Headers', 'Content-Type, Authorization') ->header('Access-Control-Max-Age', '86400'); }); ?>

Результат выполнения OPTIONS запроса к /api/secure-data:

<html> <head> <title>Empty Response</title> </head> <body> Заголовки ответа: Access-Control-Allow-Origin: *, Access-Control-Allow-Methods: GET, POST, PUT, DELETE, Access-Control-Allow-Headers: Content-Type, Authorization, Access-Control-Max-Age: 86400 </body> </html>

Смотрите также

  • метод get,
    который обрабатывает GET запросы
  • метод post,
    который обрабатывает POST запросы
  • метод put,
    который обрабатывает PUT запросы
  • метод delete,
    который обрабатывает DELETE запросы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить