2016-07-23 18 views
1

PHPファイルを呼び出していないと私は、データベースに接続するための試験を行うが、私はエラーを取得すること:にSyntaxError:JSONで予期しないトークン<位置の0角度2サービスは、私は、角2を学んでいる

私のxamppはポート80または443で作業しています。 私のテストのURLは(私は角度cliを使用しています):localhost:4200

これは私の試みです。私はこの方法のサービスを持っています:

getUsers(){ 
return this._http.get('getusers.php') 
    .map(res => res.json()); 
} 

getusers.phpファイルはパブリックフォルダにあります。 これは内容です。ただいくつかの結果を取得し、JSONとしてそれらを送り返すことは非常に基本的な:

// set up the connection variables 
    $db_name = 'mydb'; 
    $hostname = 'localhost'; 
    $username = 'myusername'; 
    $password = 'mypass'; 

    // connect to the database 
    $dbh = new PDO("mysql:host=$hostname;dbname=$db_name", $username, $password); 


    $sql = 'SELECT * FROM users'; 


    $stmt = $dbh->prepare($sql); 


    $stmt->execute(); 


    $result = $stmt->fetchAll(PDO::FETCH_ASSOC); 


    $json = json_encode($result); 

    echo $json; 

ので、私はサービスをインポートするコンポーネントで、コンストラクタでそれを初期化し、サブスクライブすることを追加します。

constructor(private _usersService: UsersService) {} 

    ngOnInit() { 
    this._usersService.getUsers() 
     .subscribe(
     data => this.getUsers = JSON.stringify(data), 
     error => alert(error), 
     () => console.log("Finihed") 
    ); 
    } 

何午前私はここで行方不明です。私は何トンものアヤックスコールをしますが、最初は角度があります。多分それはポートですか?何か私は行方不明ですか?

よろしくあなたが動作するようにAJAX呼び出しに加入する必要が

+0

これは、 "SyntaxError:予期せぬトークン FirstOne

+0

何も送信していないので、ブラウザから 'getusers.php'にアクセスしてください。あなたは何を見ますか? – FirstOne

+0

私は知っています。私がやった最初のことは、ファイルinitselfをチェックすることでした。私はvar_dumpを行い、データを取得します。 – Ron

答えて

1

getUsers(){ 
    return this._http.get('getusers.php') 
    .map(res => res.json()); 
} 

のは、あなたがここでgetメソッドを呼び出しているとしましょう。お電話でのポートとの完全なURLを使用します。 http://localhost:80/yourproject/public/getContacts.php

し、サーバー側が出力する前にCORSヘッダを追加で:

header("Access-Control-Allow-Origin: *"); 
header('Access-Control-Allow-Headers: X-Requested-With'); 
header('Content-Type: application/json'); 

echo json_encode($result); 

私はちょうど私は*を使用してテストしていますが、これではありませんので、お勧めします。 usuallは特定のURLを許可します。

0

。これまでgetUsersメソッドがそれに加入する必要があります呼んでいる :状況は二つのポートとのクロスドメインであるので、その

myOtherFunction(){ 
    this.getUsers.subscribe((response)=>{ 
      console.log('response',response); 

    }) 

} 
+0

ねえ、これを忘れてしまいました。 'ngOnInit(){ this._usersService.getUsers() .subscribe( データ=> this.getUsers = JSON.stringify(データ)、 エラー=>警告(:私のコンポーネントに私がサービスした後、これをインポートエラー)、 ()=> console.log( "Finihed") ); } ' – Ron