2017-01-04 2 views
1

Я использую угловой 2, и я пытаюсь отправить данные из углового через запрос на отправку в php-файл на моем сервере. Когда я пытаюсь, я получаю эту ошибку «SyntaxError: Неожиданный токен < в JSON в позиции 0». Вот код, который у меня есть. Любая помощь будет оценена. Благодаря!SyntaxError: Неожиданный токен <в JSON в позиции 0 - Угловой запрос на отправку PHP

кнопку App компонент

<button class="btn btn-primary btn-lg" (click)="postData()"> Make Post Request </button> 

приложение код компонента Я использую эту функцию и вызвать его на кнопке в шаблоне, чтобы отправить запрос

postData(){ 
this.requestService.postSomeData() 
    .subscribe(
    data => this.postRequest = data, 
    error => console.log('There is an error: ' + error), 
    () => console.log("Completed Post Request!") 
); 
} 

код запроса обслуживания - Вот сервис, который я вызываю в компоненте приложения.

postSomeData(){ 
    let url = 'link to php file here'; 
    let jsonData = { 
     name: 'my Name' 
    }; 
    let headers = new Headers(); 
    headers.append('Content-Type', 'application/x-www-form-urlencoded'); 

    return this.http.post(url, jsonData, {headers: headers}) 
      .map(res => res.json()); 
} 

PHP File

<?php 

$postdata = file_get_contents("php://input"); 
$request = json_decode($postdata); 
$name = $request->name; 
echo "Name: ".$name; 

?> 
+0

Не уверен, где вы получаете эту ошибку, но прямо над ней, поставьте 'console.log()' и эхом отработайте все данные, которые вы пытаетесь декодировать. Возможно, вы получаете XML вместо JSON. – aynber

+0

Что вам нужно сделать, это посмотреть, какие данные передаются с запросом. Откройте инструменты разработчика, перейдите на вкладку сети и включите ajax. Вы можете посмотреть заголовки запроса и тело. Я просто буду гадать, но я предполагаю, что вы отправляете дополнительные данные, такие как html, вместе с запросом ajax. Если это выглядит хорошо, посмотрите на информацию ответа. Возможно, у вас есть некоторая ошибка php, отправленная обратно, в комплекте с html. –

+0

@ JonathanKuhn Ok. Я отправил запрос и проверил вкладку сети, и он говорит о статусе 200, я вижу данные формы как объект json. Есть ли что-то конкретное, что я должен искать? – LadyT

ответ

0

Проблема исходят из того, что в PHP (на стороне сервера я предполагаю) нет ответа вернулся.

Смежные вопросы