Попытка получить данные json из api, а затем опубликовать на сайте Angular 6

Я использую Uploadcare Upload API, и я создаю приложение для загрузки фотографий, а затем добавляю их на свой сайт localhost. Я все время получаю сообщение об ошибке консоли:

Unexpected token < in JSON at position 0
at JSON.parse (<anonymous>)
at Response.push../node_modules/@angular/http/fesm5/http.js.Body.json

Если кто-то сможет найти ошибку в моем коде и указать мне правильное направление, я буду очень признателен. Код компонента ts выглядит следующим образом:

import { Component, OnInit, Input } from '@angular/core';
import { Http } from '@angular/http';

import { GalleryComponent } from '../gallery/gallery.component';

@Component({
  selector: 'app-fileuploader',
  templateUrl: './fileuploader.component.html',
  styleUrls: ['./fileuploader.component.css']
})
export class FileuploaderComponent implements OnInit {

  ngOnInit() {}

  @Input()
    gallery: GalleryComponent;

  constructor(private http: Http) { }

  uploadFile(event) {
    let elem = event.target;
    if (elem.files.length > 0) {
      let formData = new FormData();
      formData.append('file', elem.files[0]);

      this.http.post('http://localhost/angular-php/script.php', formData).subscribe((data) => {

        let jsonResponse = data.json();

        this.gallery.gotSomeDataFromTheBackend(jsonResponse.file);
        console.info('Got some data from the backend ', data);
      }, (error) => {
        console.info('Error! ', error);
      });

    }
  }
}

а PHP:

<?php
header('Access-Control-Allow-Origin: *');
define(PUBLIC_KEY, 'cfcc5bbc8eb856a7d808');

$tempPath = $_FILES['file']['temp_name'];
$actualName = $_FILES['file']['name'];

$actualPath = dirname(_FILE_)."/temp/".$actualName;
move_uploaded_file($tempPath, $actualPath);


$ch = curl_init();

$post = [
  'UPLOADCARE_PUB_KEY'=>PUBLIC_KEY,
  'UPLOADCARE_STORE'=>1,
  'file'=> curl_file_create($actualPath)
];

curl_setopt($ch, CURLOPT_URL, 'https://upload.uploadcare.com/base/');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

$response = curl_exec($ch);

echo ($response);

Размещение console.info (data); прежде, чем позволить json ..., я получаю:

Response {_body: "<br />↵<b>Warning</b>:  Use of undefined constant …ngular-php\script.php</b> on line <b>9</b><br />↵", status: 200, ok: true, statusText: "OK", headers: Headers, …}

headers
:
Headers {_headers: Map(1), _normalizedNames: Map(1)}

ok
:
true

status
:
200

statusText
:
"OK"

type
:
2

url
:
"http://localhost/angular-php/script.php"

_body
:
"<br />↵<b>Warning</b>:  Use of undefined constant PUBLIC_KEY - assumed 'PUBLIC_KEY' (this will throw an Error in a future version of PHP) in <b>C:\xampp\htdocs\angular-php\script.php</b> on line <b>4</b><br />↵<br />↵<b>Notice</b>:  Undefined index: temp_name in <b>C:\xampp\htdocs\angular-php\script.php</b> on line <b>6</b><br />↵<br />↵<b>Warning</b>:  Use of undefined constant _FILE_ - assumed '_FILE_' (this will throw an Error in a future version of PHP) in <b>C:\xampp\htdocs\angular-php\script.php</b> on line <b>9</b><br />↵"

__proto__
:
Body

Что выйдет у console.info(data);, если поставить его перед let jsonResponse = data.json();?

Lynx 242 05.07.2018 19:42

Я добавил ответ в console.info в последней редакции. Спасибо за помощь @DiabolicWords

Erik James Robles 05.07.2018 19:47

Попробуйте напечатать эту строку в console.info ("data", JSON.parse (data)): Удалите эту строку один раз data.json () ;.

Karnan Muthukumar 06.07.2018 06:12

Скажите, что у вас получилось при использовании метода json.parse

Karnan Muthukumar 06.07.2018 06:13

Конечная точка PHP возвращает документ с кучей предупреждений PHP. Это не анализируемый документ JSON :) Итак, я уверен, что все будет работать, если вы либо удалите это предупреждение для скрипта, либо измените свой PHP-код, чтобы не возникало никаких предупреждений или уведомлений.

Dmitry Mukhin 06.07.2018 10:12
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
319
0

Другие вопросы по теме