2012-03-14 19 views
2

私はhttp(s)://www.api.domain.comに自分のAPIを持っています(HTTPSにはRapidSSLがインストールされています)。HTTPSのjQuery AJAX - リソースのロードに失敗しました

私はブラウザを介してそのURLをacccessなら、私は大丈夫です

{"error":{"code":404,"message":"Invalid API version."}} 

を取得します。私はhttps://www.api.domain.com/v1/authにアクセスする場合

は、私が(そのAPIは、SSLでOK働くサイン)もOKです

{"error":{"code":404,"message":"Missing authorization header."}}

を取得します。

他のドメインからそのAPIへのjQuery AJAX呼び出しがあります。 SSLなしで電話をすると(http://www.api.domain.com/v1/auth)、すべてが正常に機能しています(認証ヘッダーとその他の必要なものを送信しています)、私は応答を得ています。 SSL(https://www.api.domain.com/v1/auth)と同じものにアクセスしようとすると、私はOPTIONS https://www.api.domain.com/v1/auth Resource failed to loadとなります。

また、CORSが機能しています。 PHP側では、私は

if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { 
    header('Access-Control-Allow-Origin: *'); 
    header('Access-Control-Allow-Headers: Authorization, x-domain-accesskey, X-Requested-With'); 
    exit; 
} 

だから、それは働いているが、SSLなしでのみです。クロムで私はオプション要求を参照してくださいGET/POST /何でも私が要求した。それは正常に動作しています。

しかし、私はHTTPSに移動しようとすると、

リソースは、私はこの(なぜ最初の画像にOPTIONSを示しているかわからない、だけを持つネットワーク]タブで

のロードに失敗しましたしかし、詳細POST

enter image description here

enter image description here

enter image description here

、その後はただ...停止しますか? jQueryのでは

xhr.send((s.hasContent && s.data) || null); 

$.ajaxライン上に停止(crossDomain: truedataType: jsonpまたは何か他のものを持っていない)が正常です。

アイデア?

答えて

2

は、HTTPSでレンダリングし、それはあなたのために正常に動作する必要がありますからHTTPS AJAX要求を送信するページのyoureを作ります。

+0

私も同じ問題を抱えています。しかし、あなたが上記のことを理解できませんでした。詳細に説明してください。 – shashaDenovo

+0

@shashaDenovo https経由でページを読み込んでいる場合は、https経由でスクリプトを呼び出す必要があります.HTTPではなくhttps経由でスクリプトを呼び出す必要があります。これを実装する方法はいくつかありますが、Googleアナリティクススクリプトは事前にプロトコルを検出しています。 Youtubeの埋め込みビデオは ':// script_name'のようなものです – Rooster

関連する問題