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

Метод expectsJson

Метод expectsJson применяется к объекту запроса и возвращает логическое значение. Он проверяет заголовок Accept запроса, чтобы определить, ожидает ли клиент получить ответ в формате JSON. Метод возвращает true, если в заголовке присутствует application/json или если запрос был отправлен через JavaScript-фреймворки с указанием ожидания JSON-ответа.

Синтаксис

<?php $request->expectsJson(); ?>

Пример

Давайте проверим, ожидает ли текущий запрос JSON-ответ:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesLog; class ApiController extends Controller { public function handle(Request $request) { if ($request->expectsJson()) { return response()->json(['status' => 'success']); } return view('welcome'); } } ?>

Результат выполнения кода при запросе с заголовком Accept: application/json:

{"status": "success"}

Пример

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

<?php namespace AppHttpControllers; use AppModelsUser; use IlluminateHttpRequest; class UserController extends Controller { public function index(Request $request) { $users = User::all(); if ($request->expectsJson()) { return response()->json($users); } return view('users.index', ['users' => $users]); } } ?>

Результат выполнения кода при обычном запросе:

"HTML-страница со списком пользователей"

Пример

Давайте проверим метод expectsJson в middleware для обработки только JSON-запросов:

<?php namespace AppHttpMiddleware; use Closure; use IlluminateHttpRequest; class RequireJson { public function handle(Request $request, Closure $next) { if (!$request->expectsJson()) { return response()->json(['error' => 'JSON required'], 406); } return $next($request); } } ?>

Результат выполнения кода при запросе без заголовка Accept: application/json:

{"error": "JSON required"}

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

  • метод wantsJson,
    который также проверяет ожидание JSON-ответа
  • метод ajax,
    который определяет AJAX-запрос
  • метод json,
    который возвращает данные JSON-запроса
  • метод header,
    который получает значения заголовков запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить