2016-12-19 44 views
0

私は2つのサブドメインを持っています(私たちがホストしていない1つのサイト) - SSL証明書を持っています。Javascript/Jqueryの別のサブドメインでAPIを呼び出す方法

  1. api.mydomain.co.uk
  2. test.mydomain.co.uk

(私たちは、無効な証明書が、同じドメインでホストしていないドメイン)私はAJAX持っている(私たちは有効なSSL証明書でホストないドメイン) test.mydomain.co.ukからapi.mydomain.co.ukに電話してください。今は明らかに、私が期待している要求されたリソースエラーにNo 'Access-Control-Allow-Origin'ヘッダーが存在します。

しかし、test.mydomain.co.ukのコードにdocument.domain = "mydomain.co.uk"を入れてください。

私はそれがサブドメインであるため、問題は解決すると思っていました。だから私の質問は - 無効なSSLは問題を引き起こしている、または私はCORSなどのような何かをする必要がありますか?

+0

これはcorsを追加することによって行うことができます – astroanu

答えて

0

はい、サブドメインにcorsを設定して、apiのように動作させる必要があります。

あなたのページがtest.mydomain.co.ukからリクエストされたとします.test.mydomain.co.ukに対して行われたすべてのajax呼び出しは同じ起源からのものなので、CORSの設定は必要ありません。

api.mydomain.co.ukを呼び出そうとすると、それは別の起点として見えます。同じドメインであっても難しいので、CORS要求を受け入れるように設定する必要があります。 NGINX、ノード、またはWebサーバーとして使用しているものすべてで行います。

NGINXでの操作方法は次のとおりです。 http://enable-cors.org/server_nginx.html

+0

こんにちは私は、ドキュメントドメインが同じドメインで動作するという印象を受けました。それは事実ではありませんか?私が尋ねる理由は、apiを呼び出すドメインを制御しないため、サーバ側のコードを含まないソリューションを望んでいるからです。 CORSが唯一かつ最も重要なのは、最も安全な方法ですが、それでも問題ありません。 – user1102550

+0

こんにちは(私自身の質問に少し答えてください) - 私はもう少しの研究を行いました、そして、javascriptドメインはserversideリソースへの呼び出しではなく、クライアント側のサブドメインインタラクション(例えばIframes)のためのものです。 CORSがMagusによって指摘されているように好ましいアプローチであるAJAXを介して。ここにリンクがありますhttps://stackoverflow.com/questions/15563611/why-doesnt-setting-document-domain-work-to-allow-ajax-requests-to-a-parent-doma – user1102550

+0

いいえ、あなたが指摘した記事CORSを作成するためにPHPコードにアクセス制御ヘッダーを追加することを指します。 CORSは雌犬であり、ブラウザの保護のために必要です。クロムはこれらの基準に準拠していないすべてのリクエストをブロックします。厳しい開発のために、この拡張機能を使用することができます:https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi – Magus

関連する問題