2017-01-04 11 views
1

私は角度2を使用していますが、私のサーバー上のphpファイルにポストリクエストを介してデータを送信しようとしています。試してみると、このエラーが発生します。 "SyntaxError:予期しないトークン<、JSONの位置0"です。ここに私がこれまで持っていたコードがあります。いかなる援助も感謝します。ありがとう!SyntaxError:予期しないトークン<0のJSONで - PHPへの角度投稿リクエスト

アプリケーションコンポーネントボタン

<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ファイル

<?php 

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

?> 
+0

このエラーが発生する場所はわかりませんが、真上に 'console.log()'を置き、デコードしようとしているデータをエコーアウトします。 JSONの代わりにXMLを取得している可能性があります。 – aynber

+0

あなたがしなければならないことは、要求と共に送信されているすべてのデータを調べることです。開発者ツールを開き、ネットワークタブに行き、ajaxを起動して起動させます。リクエストのヘッダーと本文を見ることができます。私はちょうど推測するだろうが、私はあなたがhtmlのようないくつかの余分なデータをajaxリクエストと共に送ると仮定します。それが正常に見えたら、応答情報を見てください。おそらくあなたはいくつかのPHPエラーが返され、HTMLで完了している。 –

+0

@JonathanKuhn Ok。リクエストを送り、ネットワークタブをチェックしてステータス200と言うと、フォームデータがjsonオブジェクトとして表示されます。私が探すべき具体的なものはありますか? – LadyT

答えて

0

PHP(私は仮定し、サーバー側)で返される応答がなかったという事実から来る問題。

関連する問題