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;
?>
このエラーが発生する場所はわかりませんが、真上に 'console.log()'を置き、デコードしようとしているデータをエコーアウトします。 JSONの代わりにXMLを取得している可能性があります。 – aynber
あなたがしなければならないことは、要求と共に送信されているすべてのデータを調べることです。開発者ツールを開き、ネットワークタブに行き、ajaxを起動して起動させます。リクエストのヘッダーと本文を見ることができます。私はちょうど推測するだろうが、私はあなたがhtmlのようないくつかの余分なデータをajaxリクエストと共に送ると仮定します。それが正常に見えたら、応答情報を見てください。おそらくあなたはいくつかのPHPエラーが返され、HTMLで完了している。 –
@JonathanKuhn Ok。リクエストを送り、ネットワークタブをチェックしてステータス200と言うと、フォームデータがjsonオブジェクトとして表示されます。私が探すべき具体的なものはありますか? – LadyT