9

私は現在、jQuery AJAX を使用して相対 URL を取得していますが、その前にスキーム/ドメインはありません (例: '/js/get_international_popup/')。返す前にロケーション ヘッダーを表示すると、応答も相対 URL になります。

これをローカルで HTTP 経由でテストすると、すべてが正常に機能します。ただし、ライブ サーバーでテストすると、HTTPS 経由で応答が Chrome によってブロックされます。

混合コンテンツ: 「https://example.com/」のページは HTTPS 経由で読み込まれましたが、安全でない XMLHttpRequest エンドポイント「http://example.com/js/get_international_popup/」を要求しました。このリクエストはブロックされました。コンテンツは HTTPS 経由で提供する必要があります。

Chrome から見ると、ローカル テスト リクエスト/レスポンスは HTTP 経由で送信されましたが、ライブ テスト リクエストは HTTPS 経由で送信され、HTTP レスポンスが返されました。ブロックされているため、ライブ サーバーで Chrome の応答を表示できません。

絶対 URL ( https://domainを含む) を含む応答を返した場合、すべて正常に動作しているように見えますが、絶対 URL は使用したくありません。

相対 URL を使用してこの問題を解決する方法があるかどうかは誰にもわかりませんか?

4

2 に答える 2

1

javascript を使用してこれを先頭に追加します。

var relative_url = '/js/get_international_popup/';
var absolute_url = window.location.origin + relative_url;
$.ajax(absolute_url, function(){});

参照: http://www.w3schools.com/jsref/prop_loc_origin.asp

注: テストされていません

于 2016-05-11T10:19:50.620 に答える