json

Возврат ошибок при некорректной обработке формы, структура ответа для html формы - формат для json, HTTP

Пример ответа для формы смены пароля (возможная струкутра):


<?php

$response = [
   $message => 'Есть проблемы!',
   $errors = [
      'old_password' => 'Неверный пароль, вспоминайте!'
      'new_password' => 'Новый пароль и поле подтверждения не совпадают!',
      'new_password_confirm' => 'Новый пароль и поле подтверждения не совпадают!'
   ]
]

-- также:

nginx timeout 504 Ответ в формате JSON - определить шаблон страницы ошибки

Можно переопределить формат ответа для указанного типа кода, напр. для 504, используя определение внутри секции server:

error_page 504 /504.html;
location /504.html{
  internal;
  add_header 'Content-Type' 'application/json charset=UTF-8';
  return 504 '{"statusCode":504, "message":"Gateway Timeout Error"}';
}

Если вам нужно сохранить настройки CORS для поддоменов, то придется выставить и эти заголовки, продублировов их, например:

XMLHttpRequest withCredentials POST, GET Авторизация с установкой куки и её отправкой в следующем запросе. Примеры запросов

Рассмотрим ситуацию с кроссдоменными запросами, где у вас должна быть в том числе авторизация. В этом примере мой бэк находится "где-то" а запросы будут выполняться иного домена - а именно с http://example.com

Собственно говоря, должен работать вот такой код (пример json-авторизации, с получением куки и её и использованием в следующем GET-запросе):

linux curl POST JSON Отправляем запрос, смотрим ответ и заголовки из терминала

Curl очень удобен для быстрой проверки работы каких-то сервисов/API прямо из терминала.

Отправляем запрос методом POST и получаем ответ:

curl --header "Content-Type: application/json" \
--request POST \
--data '{"email":"admin","password":"3359din22"}' \
"http://mysite.my/api/v1/user/login"

Если нужно посмотреть ещё и заголовки ответа, добавим флаг -i:

symfony Вывод сообщений сообщений исключений (ошибок) в формате JSON. Разные форматы для разных контроллеров

Symfony 5

Если используете аннотации, то в файле:

config/routes/annotations.yaml

можно написать так:

controllers:
    resource: ../../src/Controller/
    type: annotation
api-controllers:
    resource: ../../src/Controller/Api
    type: annotation
    defaults:
        _format: json

В данном случае контроллеры из директории

../../src/Controller/Api  

в случае возникновения в них исключительной ситуации будут выводить сообщения именно в формате json.

php json_encode() Объект не конвертируется в json - получаю пустой объект, но работает если конвертировать в массив

Почему при отправке объекта в формате json, получаю пустой объект?
Если явно сменить тип переменной на array, данные передаются корректно:

foreach ($allMessages as $message) {
           $loadingMessages[] = (array) $message;
}
return new JsonResponse([
    'loadingMessages' => $loadingMessages,
]);

Решение

Проблема в том, что private свойства объекта не упаковываются в json.

yii2 JSON формат ответа -- пример кода (Controller action)

Один из способов ответить json-ом -- изменить перед инструкцией return действия контроллера формат ответа вызовом вроде:

\Yii::$app->response->format = Response::FORMAT_JSON;

После чего можно возвращать php-данные (объект или массив), которые будут автоматически сконвертированы в json/

Вот пример, где у нас уже есть json строка и просто хотим отдать её в ответ из действия контроллера (приходится перед отдачей переводить json данные в php-представление)

smarty unrecognized tag (javascript) - Как использовать JavaScript в шаблоне, JS

Просто используйте такую вот обёртку (literal) JS кода:

{literal} 
<script type="text/javascript">
	var locations = [
		{
			latlng : [42.3329075, 9.9149702],
			title : 'EZPHONE',
		}
	]
</script>
{/literal}
Subscribe to RSS - json