5

Javascript エラーを検出してバックエンドに報告するスクリプトを使用しています。しかし、不可解な「スクリプト エラー」メッセージが表示され、デバッグにはあまり役に立ちません。

謎めいた「スクリプトエラー」によると。Chrome と Firefoxの Javascript で報告された理由は、エラーをスローしたスクリプトが私のサイトとは異なるオリジンから提供されているためです。

私は CDN を使用しているため、すべてのスクリプトは別のドメインから効果的に提供されます。CDN を使用しているときに、より有用なエラー メッセージを取得する方法はありますか?

また、すべてが SSL 経由で提供されるため、この機能を維持したいと考えています。

4

2 に答える 2

1

同様の問題がありました。私のスクリプトはサブドメインによって提供され、同じオリジンの制限に該当します。ただし、次の方法でこれを解決しました。

1) 次のようにすべてのスクリプト タグを追加します。

<script type="text/javascript" src="http://subdomain.mydomain.tld" crossorigin="*.mydomain.tld" />

2) すべての vhost 内に以下を追加して、Apache httpd.conf を変更します (mod_headers を有効にする必要があります)。

<IfModule mod_headers.c>
Header add Access-Control-Allow-Origin "*.mydomain.tld"
</IfModule>

私のサーバーの1つでは、交換する以外はこれを機能させることができませんでした

*.mydomain.tld

*

* が拡張情報をフィッシングする可能性があるという欠陥に注意してください。CORS、same-origin、img & fonts、cdn に関するドキュメントは利用できますが、スクリプト タグ crossorigin の詳細についてはほとんど利用できません。

お役に立てれば ...

于 2012-09-18T12:55:36.350 に答える
0

jQuery.ajaxのdataType属性にjsonpを使用してみてください。リモートサーバーもjsonpをサポートする必要があります。XSSを防ぐブラウザのセキュリティを回避します。

または、IFrameを使用して各ウィンドウ内でjQueryを使用することもできますが、HTML5 postMessageを使用して、2つの異なるドメインのウィンドウ間で通信します。

または、両方のサーバーを制御する場合は、同じオリジンのヘッダーを設定できます。

Jsonpは、この種の問題に対して私の選択した武器です。他のものはただ合法です。

于 2012-08-02T17:35:48.783 に答える