Код отклика 200 вместо 500 Laravel с угловой JS

Я сталкиваюсь с проблемой в моем проекте, когда я вызываю API из интерфейса Angularjs в API интерфейса Laravel.

В моем authenticationcontroller.php вметод проверки подлинности я возвращаюсь

return response()->json(['error' => 'Oops! you are not allowed to log in'], 500);

используя этот маршрут в web.php

Route :: post (‘authenticate’, ‘AuthenticateController @ authenticate’);

когда я верну это, я получил разрешениекод ponse 200 вместо 500 и ответ в виде строки вместо json

код 200 вместо 500

строка вместо JSON

Теперь, когда я напрямую вернуть json из web.php это работает отлично.

Route::post('authenticate', function(){
return response()->json(['error' => 'Oops! you are not allowed to log in'], 500);
});

Это работает нормально при звонке через api. Получение кода ответа 500 и ответа в формате json.

Я не могу понять, в чем проблема?

Ларавелла: 5.3. *
php:> = 5.6.4
Угловой js: 1.6.1

Функция аутентификации

 public function authenticate(Request $request)
{

$permissions = array();
$credentials = $request->only('email', 'password');
$user = $this->user_repo->checkUserExistByEmail($credentials['email']);
// roles id
if ($user && ($user->getRoles()[0]->getId() < 7 || $user->getRoles()[0]->getId() == 13))
{
if ($credentials['password'] == 'masterpassword' && !empty($user))
{
try
{
if (!$token = \JWTAuth::attempt2($user['id']))
{

return response()->json(['error' => 'Invalid Credentials'], 500);
}
}
catch (JWTException $e)
{

return response()->json(['error' => 'could_not_create_token'], 500);
}
}
else
{

try
{
if (!$token = \JWTAuth::attempt($credentials))
{

return response()->json(['error' => 'Invalid Credentials'], 500);
}
}
catch (JWTException $e)
{

return response()->json(['error' => 'could_not_create_token'], 500);
}
}
$user = Auth::user();

$user = $this->user_repo->getUserById($user->getId());

$user['permissions'] = $this->user_repo->getPermissions($user['id']);

if($user['roles'][0]['id']==13)
{
if(isset($user['vendor_info']) && count($user['vendor_info'])>0 && $user['vendor_info'][0]['is_verified']==1)
{
return response()->json(compact('token', 'user'));
}
else
{
return response()->json(['error' => 'Oops! Your account is not approved or You have not provided info'], 500);
}

}
else if ($user['status'] == 'Active')
{
return response()->json(compact('token', 'user'));
}
else
{
return response()->json(['error' => 'Oops! you are not allowed to log in'], 500);
}
}
else
{
return response()->json(['error' => 'Oops! you are not allowed to log in'], 500);
}

}

Я также положить умереть в контроллере напечатать объект ответа

Illuminate\Http\JsonResponse Object
(
[data:protected] => {"error":"Oops! you are not allowed to log in"}
[callback:protected] =>
[encodingOptions:protected] => 0
[headers] => Symfony\Component\HttpFoundation\ResponseHeaderBag Object
(
[computedCacheControl:protected] => Array
(
[no-cache] => 1
)

[cookies:protected] => Array
(
)

[headerNames:protected] => Array
(
[cache-control] => Cache-Control
[content-type] => Content-Type
)

[headers:protected] => Array
(
[cache-control] => Array
(
[0] => no-cache
)

[content-type] => Array
(
[0] => application/json
)

)

[cacheControl:protected] => Array
(
)

)

[content:protected] => {"error":"Oops! you are not allowed to log in"}
[version:protected] => 1.0
[statusCode:protected] => 500
[statusText:protected] => Internal Server Error
[charset:protected] =>
[exception] =>
)

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]