クロスオリジンリクエストがブロックされました: 原因を理解する
異なるドメインにまたがる HTTP リクエストは、同一オリジンポリシーとして知られるセキュリティ制限に直面する可能性があります(SOP)、「クロスオリジンリクエストがブロックされました」エラーが発生します。このポリシーは、明示的な許可なしにスクリプトがサーバーや Web ページなどの他のオリジンにリクエストを送信することを防ぎます。
Go ハンドラーのソリューション
問題を解決するにはGo ハンドラー。適切な Access-Control-Allow-Origin を設定してクロスオリジン リクエストを明示的に許可する必要があります。 header:
func handleMessageQueue(w http.ResponseWriter, r *http.Request) { // Allow cross-origin requests w.Header().Set("Access-Control-Allow-Origin", "*") ... }
Firefox OS アプリのソリューション
JavaScript コードでは、特権付き XMLHttpRequest を使用して SOP 制限をバイパスできます。これを行うには、次の構文を使用します。
var xhr = new XMLHttpRequest({mozSystem: true});
追加のマニフェスト構成
特権付き XMLHttpRequest が Firefox OS アプリで機能するには、適切なマニフェスト構成を追加する必要があります。マニフェスト ファイルへのアクセス許可:
"permissions": { "systemXHR": {}, }
理由エラー
デフォルトでは、他のオリジンへのブラウザーリクエストはセキュリティ対策としてブロックされます。 Firefox OS アプリから Go ハンドラーに POST リクエストを送信すると、SOP によりハンドラーの応答がブロックされました。 Go ハンドラーで Access-Control-Allow-Origin ヘッダーを設定し、アプリで特権付き XMLHttpRequest を使用すると、クロスオリジン リクエストが許可され、問題が解決されます。
以上が私のクロスオリジンリクエストがブロックされるのはなぜですか? Go および Firefox OS でそれを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。