1
Laravel (5.5)은 whoop 페이지 대신 json 형식으로 예외를 분명히 반환합니다. 이 성가신 동작을 비활성화하고 웁스 또는 기본 PHP 예외 형식을 어디에서받을 수 있습니까?JSON 예외를 방지하는 방법
Laravel (5.5)은 whoop 페이지 대신 json 형식으로 예외를 분명히 반환합니다. 이 성가신 동작을 비활성화하고 웁스 또는 기본 PHP 예외 형식을 어디에서받을 수 있습니까?JSON 예외를 방지하는 방법
JSON 응답을 기대하는 요청을하면 JSON 응답이 제공됩니다. 이 표준 동작을 원하지 않는 경우
X-Requested-With: XMLHttpRequest
또는
X-PJAX: true
또는
Accept: */json or *+json
, 당신은
app/Exceptions/Handler.php
에서 귀하의 예외 핸들러를 덮어 쓸 수 있습니다 : 다음 헤더는 JSON 응답을 트리거합니다. (이
vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php
에서 직접 복사하고, 항상 요청 헤더를 무시하고 으악를 반환)이에
render
기능을 변경
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $exception)
{
if (method_exists($e, 'render') && $response = $e->render($request)) {
return Router::toResponse($request, $response);
} elseif ($e instanceof Responsable) {
return $e->toResponse($request);
}
$e = $this->prepareException($e);
if ($e instanceof HttpResponseException) {
return $e->getResponse();
} elseif ($e instanceof AuthenticationException) {
return $this->unauthenticated($request, $e);
} elseif ($e instanceof ValidationException) {
return $this->convertValidationExceptionToResponse($e, $request);
}
return $this->prepareResponse($request, $e);
}
을 또는 당신이 반환하고자하는 컨텐츠의 종류를 결정하기 위해 여기에 자신의 논리를 추가 다른 헤더가 주어 졌을 때.
존재하지 않는 페이지를 방문해보십시오 (간단한 브라우저 GET 요청). JSON에서 예외가 발생합니까? .env에'APP_DEBUG = true'가 있으면 정상적인 웁스를 얻을 수 있습니다. JSON 헤더를 보낼 때 JSON이 반환된다고 생각합니다. – devk
@devk 예, 질문에 언급 된대로 json을 얻습니다. 현재는'APP_DEBUG = true'입니다. json 헤더에 대해 정기적 인 예외를 받아야합니다. 이것이 문제입니다. – PHPst