web-dev-qa-db-ja.com

単純なjQueryコードは、サイトがhttps://経由でロードされるまで正常に機能します

フォームを送信し、画面上の情報の一部を非表示/表示するjQueryコードの単純なピースがあります。 IE7で中断するhttps://を介してロードされるまで、テスト時に正常に動作します。スクリプトはまったく効果がなく、完全に壊れているように見えます。また、IE「一部の要素は安全ではない」という警告が表示されます。

この出来事の経験はありますか?またはさらに良い、解決策!クレジットカード支払いページとしてhttps経由でページを読み込む必要があります。

39
Plasticated

上記の3つの回答はすべて、「http」パスからスクリプトまたはその他のリソース(スタイルシート、画像など)を含めようとするセキュアな「https」ページの問題に言及しています...

これらに追加したいのですが、either httpまたはhttpsを介して同じページをロードできる状況がある場合は、「プロトコルなし」URLを作成できることに注意してください---プロトコルは現在のページと同じであると想定されます。これは、異なるドメインのリソースにアクセスする場合にのみ必要です(これらの異なるドメインがhttpとhttpsの両方をサポートしている場合にのみ機能します)。 //まったく...

たとえば、これらの3つのリソースはそれぞれ、現在のページへのアクセス方法に応じてhttpまたはhttpsを想定します。

<script src="//www.example.com/whatever.js" type="text/javascript"></script>
<img src="//www.example.com/someimage.png" alt="whatever" />
<link href="//www.example.com/styles.css" rel="stylesheet" />
78
Funka

https://を介してページを提供する場合、すべてのリソースリンクもhttps://を使用する必要があります。を探して

<script type="text/javascript" src="http://.../jquery.js"></script>
11
John Kugelman

ご意見ありがとうございます。この問題は最終的に、Thickbox.jsで言及されている画像まで追跡されました。

これにはhttp://(https://ではなく)URLが含まれていたため、エラーメッセージが発生していました。表示されるセキュリティメッセージには、安全でないコンテンツの読み込みに対して「はい」または「いいえ」があり、「はい」をクリックすると、jQueryの読み込みを停止するようブラウザに指示されます。

確かにトリッキーなものなので、同じ問題を抱えている他の人の助けになると期待して自分自身に答えると思いました。

5
Plasticated

ブラウザとしてIE 11を使用していました。

解決策:互換モードを使用しないでください。 「ツール」->「互換表示設定」。

症状:

プログラムはhttpモードで正常に機能していました。

ブラウザは、識別子が必要であると主張して、行でエラーを報告しました。

ブラウザはjqueryライブラリファイルのデバッグを許可しません。デバッグするファイルのリストにファイルが表示されなかったため、開発者のコ​​ンソールログのエラーメッセージからアクセスした場合、ファイルにブレークポイントを設定できましたが、ブレークポイントは無効でした。

ブラウザは、ファイルが正常にロードされたことを明確に示しました。

別のブラウザを使用してもエラーは発生しませんでした。

ヒント:テストプログラムを削除して、jqueryライブラリファイルと固定テキストを表示する1つのdivをロードしたため、間違ったコードはありませんでした。これにより、間違っている可能性のあるリストが大幅に簡素化されました。

0
david wendelken

Code.jquery.comからjqueryを使用している場合も、同様の動作が見られる場合があります

例えば:

code.jquery.comには有効なSSLがありません。

これにより、他のスクリプトが正しく動作しなくなる可能性があります。

代わりにgoogle cdnを使用するか、独自のサーバーからjqueryをロードします

それが役に立てば幸い

0
Fry