Maison > Questions et réponses > le corps du texte
1. Soumettez le formulaire via ajax. Si la vérification échoue, un json avec une valeur de statut http de 422 sera renvoyé. 2. Comment personnaliser le format du json ?
3. La valeur du statut http est 422, ce qui semble avoir été codé en dur dans le framework. Je souhaite renvoyer le json personnalisé au front-end en interceptant les exceptions de validation. Est-ce possible ?
4. Lorsque vous utilisez la méthode ajax de jquery, vous ne pouvez toujours pas obtenir les données de retour formatées en tant qu'objet json lorsqu'une erreur se produit. Vous ne pouvez obtenir un json que sous la forme d'une chaîne
.
伊谢尔伦2017-06-21 10:12:48
Vous pouvez définir vous-même le format json en fonction de vos besoins Il n'y a plus rien à dire sur les deux questions suivantes
.La valeur du statut http est 422, ce qui semble être codé en dur dans le framework. Je souhaite renvoyer le json personnalisé au front-end en interceptant les exceptions de validation. Est-ce possible ?
<?php
namespace App\Exceptions;
use Illuminate\Validation\ValidationException;
...
class Handler extends ExceptionHandler
{
...
public function render($request, Exception $e)
{
if ($request->ajax() || $request->wantsJson()) {
$errors = [];
if ($e instanceof ValidationException && $e->getResponse()) {
try {
$errors = json_decode($e->getResponse()->getContent(), true);
} catch (\Exception $ex) {
$errors = $e->getResponse()->getContent();
}
}
return response()->json([
'message' => empty($errors) ?
(empty($e->getMessage()) ? '出错了' : $e->getMessage())
: implode(',', array_first($errors)),
'status_code' => $e->getStatusCode(),
'errors' => $errors
]);
}
...
}
}
En utilisant la méthode ajax de jquery, lorsqu'une erreur se produit, vous ne pouvez toujours pas obtenir les données de retour formatées en tant qu'objet json. Vous ne pouvez obtenir un json que sous la forme d'une chaîne
.$.ajax({
...
dataType: "json",
...