2016-10-29 21 views
0

まずは、私の質問に耐えてください。角2の混乱Http投稿要求

私がやっていることは、文字列の応答データを返すだけのajaxリクエストを実行することです。

は、ここに私のphpこれは動作しません

let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' }); 
let options = new RequestOptions({ headers: headers }); 
return this.http.post('./app/parsers/peenoise.php', '', options) 
    .then(val => console.log(val)) 

<?php 
    header('Access-Control-Allow-Origin: *'); 

    echo 'Peenoise Crazy'; 
?> 

HTTPリクエストです。しかし、もし私がURLをこれに変更するとhttp://localhost:8912/app/parsers/peenoise.php。できます。

質問./app/parsers/peenoise.phpが動作しないのはなぜ

  1. URLをhttp://localhost:8912/app/parsers/peenoise.phpに変更した場合。 header('Access-Control-Allow-Origin: *')を入力する必要があるのはなぜですか?それは私のアプリの同じフォルダにあります。
  2. http://localhost:8912/route/to/phpfolder.phpのURLを渡さずにhttp.postを使用する方法?

ご協力いただければ幸いです。私にこれを案内してください。ありがとう

+0

quando OusuárioFAZ UMAsolicitação于山島アヤックス角度2、O pedidoéデnavegador行うclienteです。サービド・ナイト・ベーム・オブ・サービド・オブ・サービサー。ポルソーソ、サービサーのために必要なもの。あなたはクライアントに何の援助もしません。 希望の方法でサーバーにリクエストすることはできません。 –

+0

'/ app/parsers/peenoise.php'(先頭のドットなし)を試しましたか?ディレクトリパス表記を使用しようとしているようですが、ドットはURLと同じように解釈されません。 –

+0

@ user3608792はい。私はすべてを試して、コンソールにエラーがなく、動作しません。 –

答えて

0

投稿には完全なURLまたは相対URLが必要です。あなたのポストの要求が

this.http.post('./app/parsers/peenoise.php', '', options).then(val => console.log(val)) 

を下回るようなもので、それは場所にポストの要求をしようとします実際には角度がデータをポストするためにバックエンドサーバを探します

this.http.post('/parsers/peenoise.php', '', options) 
0

、とても想像:あなたが使用することができます

:4200

http://localhost:4200/app/parsers/peenoise.php 

は、あなたの質問に答えるために: あなたがローカルホスト上の角度提供していると想像します

1)./app/parsers/peenoise.php実際にあなたが別のサーバーにHTTP要求を作っている時はいつでもあなたのサイトが1からよりもheader('Access-Control-Allow-Origin: *')を配置する必要があります)あなたのバックエンドサービス

2からそれを見つけようとしているため動作しません。現在使用していない場合は、Connection_refused_Errorになります。 mockBackEndを使用して

3)あなたはmockAckendsがあるだけで、角度を使用したい場合は、in-memory-web-api

例は here

関連する問題