Как исправить SyntaxError: Неожиданный токен � в JSON в позиции 0 в Ionic 3? - PullRequest
0 голосов
/ 16 октября 2018

Хотите отобразить изображение, ответ от остальных API с Laravel в представлении ионной страницы.

Код работал при тестировании с почтальоном, но в ионной версии получает ошибку:

SyntaxError: Неожиданный токен � в JSON в позиции 0 в JSON.parse ...

с HTTP-статусом 200

Использование JWT

бэкэнд:

public function maPhotoApi(Request $request){
    $user =  auth()->user();
    $residentModel = new Resident();
    $resident = $residentModel->getResidentByIdUser($user->id);

    if (is_dir(base_path('resources/resident/' . $resident->id_resident . '/')) && file_exists(base_path('resources/resident/' . $resident->id_resident . '/') . 'photo.jpg')) {
        $img = file_get_contents(base_path('resources/resident/' . $resident->id_resident . '/') . 'photo.jpg');
        return response($img)->header('Content-type', 'image/jpeg');
    } else {
        $img = file_get_contents(base_path('resources/resident/profil.png'));
        return response($img)->header('Content-type', 'image/jpeg');
    }
}

Frent-конец (ионный) в службе или поставщике

maPhoto(){
  let httpOpt = {
    headers: new HttpHeaders({
      'Access-Control-Allow-Origin': '*',
      'Authorization' : 'Bearer '+localStorage.getItem('token'),
      'Content-type': 'image/jpeg',
    })
  };
  return this.http.get(this.url + "maPhoto", httpOpt);

}

Компонент:

this.residentProvider.maPhoto().subscribe(data => {
  console.log("--------------------");
  console.log("photo => " , data);
  this.maPhoto = data;
})

1 Ответ

0 голосов
/ 16 октября 2018
  • Причиной этой ошибки является то, что сервер возвращает обычный текст или содержимое HTML в качестве ответа и ионное приложение, пытающееся выполнить синтаксический анализ в JSON.Сервер должен отправить data в формате JSON.
  • Чтобы фактически подтвердить, что приложение Ionic получает с сервера, откройте инструменты разработчика Google Chrome, перейдите на вкладку «Сеть», выберите связанный вызов API и откройте вкладку «Ответ».Ионное приложение должно получить что-то вроде ниже.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...