2016-05-21 8 views
0

バックエンドAPIとしてdjangoを使用しています。apiを作成するためのajax call.myメインサイトはhttpsで実行されますが、httpではapiが実行されます。私はsgn certからngnixにロードされたAPI呼び出しを行うことができません。https://example.comからhttp://api.example.comを呼び出すことはできますか?

httpsからhttpへのajaxコールは可能ですか?

任意のリードは評価されますか?

thnks in advance .. !!

+0

これを解決するためにCurlを試しましたか? Curlを通じてhttpサイトから情報を取得する同じサーバーにajax呼び出しを行うことができます。 apiのラッパーを作成することができます。 – Nitin

答えて

0

お使いのブラウザーはこれをやめるか、HTTPS接続に安全でない警告と南京錠の記号を付けます。

HTTPSは、サイトがセキュリティで保護されていることを示しています。つまり、サイトが特定のドメイン(認証)であること、傍受されて変更されていないこと(完全性)サーバーとの間でメッセージをやり取りします(機密性)。

api呼び出しのような安全でないリソースを追加すると、これらの保証はもはや存在しないため、ブラウザーは通常は黄色の警告パドロック(緑色ではなく)および/またはポップアップで「安全でない」警告を表示します。

危険性が低く、許可されていると見なされた非アクティブコンテンツ(画像など)と、潜在的に危険で許可されていないアクティブコンテンツ(JavaScriptなど)を区別するために使用されるブラウザ彼らはもう何もしません。たとえ彼らがAjaxをやったとしても、XHRコールは後者のカテゴリにはっきりとあります。

最良のオプションは、(例えば、前方nginxの設定ファイルを使用してAPIにnginxのからhttps://example.com/apiに要求)nginxのを通して、あなたのメインのサイトのドメインを介してproxy passへの要求です。

1

HTTPとHTTPSの唯一の違いはSSLセキュリティ部分です。サーバーが他のHTTPリクエストと同様にAPIに送信するHTTPS要求を処理できる場合、クライアントからの実際のデータ通信だけですソケットが影響を受けるサーバーソケットに接続されていると、データが受信されると再びプレーンテキスト(または元の形式)に戻ります。

+0

私はあなたが異なるドメインにあったという点を忘れてしまったと思います。 –

+0

そのサーバーがSSLをサポートしており、証明書が適切に設定されている限り、それが機能しない理由はありません。もちろん、ワイルドカード証明書または2つの別個のSSL証明書が必要ですが、私の要点はそのまま適用されます。 – zezioen

+0

彼はhttpsからhttpに電話をかけたいと思っています。これは許可されません。 apiをhttpsにアップグレードすると言っているのですか?もしそうなら、私はそれがうまくいくことに同意しますが、それはあなたの答えで尋ねられたり、明確にされたものではなく、なぜこれをしなければならないのでしょうか。 –

関連する問題