2017-10-04 24 views
0

私は角度のあるユニバーサルアプリをセットアップしました。私はサーバー側でlocalhostを使って私のアプリを事前レンダリングするためのPOSTリクエストを行い、これは正常に動作します。角度ユニバーサルhttpsの問題

作業URLの例はhttp://localhost:8000/api/get-infoです。

私は今、アプリケーションを外部URL(apacheサーバー)上のプロダクションに入れました。私もsslを使用しています。

私は、アプリケーションを事前レンダリングするためにサーバー側でPOSTリクエストを実行しようとすると、ステータスが0、url:null(これは接続が拒否されたと仮定している) 。

動作していないURLの例は、https://mywebsite.com/api/get-infoです。

私が本当に悩んでいるのは、アプリケーションがクライアントに読み込まれると、すべてのHTTPS要求が機能し始めたことです。だから、私の外部URLにPOST要求を送るためにエクスプレスサーバーを取得できないという問題があります。

私はサーバー側の投稿要求を別のWebサイト(twitter)にテストしましたが、それもうまくいくようです。だから私はどこが間違っているのか分からない。

すでにCORSに「*」が設定されています。

+0

あなたのAPIはどこで実行されていますか? ssrエンジンと同じExpress.jsサーバーですか? – Moema

+0

は、自己生成のsslキーを使用していますか、それとも購入しましたか? –

+0

は有効な応答ではありません。このリンクを参照してください。https://stackoverflow.com/questions/19858251/what-does-http-status-code-0-mean – FussinHussin

答えて

1

は、同様に生産の

http://localhost:8000/api/get-info

を使用してみてください。 AngularアプリはAPIが動作しているサーバーと同じサーバーにレンダリングされるため、localhostを使用すると正常に動作します。外部URLを使用しているかどうかは関係ありません。

私は似たような行う(そのGETをしかし、それは問題ではありません)私の翻訳で:

if (this.isServer) { 
    translateLoader.setUrl('http://localhost:4000/assets/localization/'); 
} else { 
    translateLoader.setUrl('assets/localization/'); 
} 

それはローカルおよび生産(サーバーとクライアントの両方)で動作します。

+0

歓声、私はその方法を使用して作業している。キーはまた、サーバーがHTTP経由で別のポートをリッスンさせるようにしていました。したがって、サーバーはポート3000でHTTP、ポート8000​​でHTTPSをリッスンします。サーバー側はhttp:// localhost:3000/api/get-infoを要求し、クライアントはhttps://my-website.com/api/を要求します。情報を取得。 –

+0

パーフェクト!それは実際に私が言ったことですが、私はあなたのHTTPSを忘れていました – Moema