ajax、更新を確認してください、same_origin_policy
-
18-09-2019 - |
質問
アプリケーションでインストールされるこのHTMLマニュアルがあります。このマニュアルは頻繁に更新され(週に3〜5回)、マニュアルが古くなっている場合はユーザーに警告したいと思います。
私が最初に考えたのは、Webサーバーにホットリンクされた画像を作成することでした。これは、「更新」画像または「更新なし」画像を使用してサーバーを使用しているバージョンを確認するために使用できます。ただし、ユーザーがインターネット接続を持っていない場合、画像は壊れた画像として表示されます。そして、私はそれを望んでいません。
次に、私はWebサーバーからのリクエストを行うために少しのAjaxを使用することを調べました。ユーザーがインターネット接続を持っていなかった場合、JavaScriptは優雅に失敗することができます。しかし、私は問題に遭遇しました。マニュアルはユーザーPCのローカルファイルとして保存されているため、クロスドメイン要求と見なされます(同じ起源のポリシー)私のウェブサーバーからのリクエストを行う。
他に何を試すべきかについての提案はありますか?
多くのユーザーがインターネット接続を持っていないため、マニュアルのオンラインバージョンのスタートメニューにハイパーリンクを含めることはできません。
解決
あなたの最初の直感は私にとって最も簡単な解決策のようです。
ホットリンクの画像を使用して、更新を宣伝します。 altテキストを使用して壊れた画像を非表示にし、ユーザーに役立つメッセージを表示します。
たとえば、次のことを試すことができます。
<img src="foobar.jpg?v=1.05.93" alt="Checking for updates... Offline! Connect to the internet to check for updates to this manual." name="UpdateChk" />
派手になるために、CSSでは、境界線とパディングを追加して、IMG ALTテキストが際立っていて、マニュアルの通常のテキスト部分のように見えません。たぶん1pxの境界と3pxのマージン/パディングですか?
他のヒント
コールバック関数を備えた$ .POSTを使用して、応答を処理します。 「同じ起源ポリシー」が安全です。
JSONPを使用する可能性があります。こちらをご覧ください。