クロスオリジン リクエストがブロックされました: Firefox OS の問題の解決
ブラウザが次からのリクエストを制限すると、「クロスオリジン リクエストがブロックされました」エラーが発生します。セキュリティ上の懸念から、起源が異なります。 Firefox OS アプリのコンテキストでこの問題を解決するには、Go バックエンドと JavaScript コードの両方を変更する必要があります。
Go バックエンドの変更:
Go ハンドラーは「Access-Control-Allow-Origin」ヘッダーを「*」に設定して、すべてのユーザーからのリクエストを許可します。起源:
func handleMessageQueue(w http.ResponseWriter, r *http.Request) { w.Header().Set("Access-Control-Allow-Origin", "*") // ... remainder of the code }
JavaScript 変更:
1. mozSystem を使用します:
XMLHttpRequest オブジェクトを作成するときに、「mozSystem」フラグを true に指定します:
var xhr = new XMLHttpRequest({mozSystem: true});
2。マニフェストに権限を追加:
Firefox OS アプリのマニフェストで、「permissions」の下に「systemXHR」権限を追加します:
"permissions": { "systemXHR" : {}, }
説明:
mozSystem は、サーバーからの CORS 許可なしでクロスサイト接続を許可します。ただし、Firefox App Store の審査プロセスに合格した特権アプリのみが利用できます。マニフェストの「systemXHR」権限により、アプリで mozSystem を使用できるようになります。
これらの変更を行うことで、Firefox OS アプリが Go バックエンドへのクロスオリジン リクエストを開始し、必要な応答データを受信できるようになります。同一生成元ポリシーによってブロックされることはありません。
以上がFirefox OS アプリの「クロスオリジンリクエストがブロックされました」エラーを修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。