ローカルファイルでjavaScript/jQueryを使用して拒否された許可
-
27-09-2019 - |
質問
function publish(text) {
$('#helpdiv').prepend(text);
}
function get_help(topic) {
$.get(topic, publish);
}
<p>Hi. <a href="#" onclick="get_help('inline-help.html'); return false;">click here for more help.</a></p>
<div id="helpdiv"></div>
上記のHTMLとJavaScriptのこのチャンク(スニペット)を継承しました。それは地元の助けとして使用されていました。現在、オンラインのみであり、正常に機能しています。ただし、ファイルをローカルにコピーすると、インターネットエクスプローラーで「許可を拒否された」ことができます。Chromeでは、「もっとヘルプを求めてここをクリックしてください」とは何もしません。それがすべきことは、Inline-help.htmlからヘルプコンテンツをロードし、HelpDiv Divに表示することです。ここにキッカーがあります。同じファイルを使用してPCのinetpubにコピーしてロードすると http://localhost/hello.html 完全に機能します。
おそらく、これは「ローカル」ゾーンがユーザーのHDからファイルをロードすることができないセキュリティのものですか?しかし、私は何が起こっているのか本当にわかりませんし、この問題をさらに理解し、回避策を思いつく可能性があります。
どんな洞察も大歓迎です。
解決
jQueryの「Get」はXMLHTTPREQUESTを使用しますが、残念ながらローカルファイルでは機能しません。ローカルデータ(または異なるドメインからのデータ)を非同期に取得できる必要がある場合は、動的なスクリプトタグを使用する必要があります。ただし、それはデータファイルをJSONデータとして再フォーマットする必要があることを意味します。
他のヒント
私はあなたのブラウザがあなたがローカルでJavaScriptを実行することを許可しているとは思わない( file:///
アクセス方法)。しかし、あなたがそれをロードするとき http://localhost/
正常に動作します。
Webサイトで開発するか、LocalHostサーバーを使用する必要があります。