[解決済み] プリフライト要求に対する応答がアクセス制御チェックを通過しない
質問
Amazon Web Services上のREST APIを呼び出すためにngResourceを使用すると、このエラーが発生します。
XMLHttpRequest を読み込むことができません。 http://server.apiurl.com:8000/s/login?login=facebook . に対する応答 preflight リクエストがアクセス制御チェックを通過しません。いいえ 要求されたヘッダーに 'Access-Control-Allow-Origin' ヘッダーが存在します。 リソースがあります。したがって、オリジン 'http://localhost' はアクセスを許可されていません。 エラー 405
サービスです。
socialMarkt.factory('loginService', ['$resource', function ($resource) {
var apiAddress = "http://server.apiurl.com:8000/s/login/";
return $resource(apiAddress, {
login: "facebook",
access_token: "@access_token",
facebook_id: "@facebook_id"
}, {
getUser: {
method: 'POST'
}
});
}]);
コントローラーです。
[...]
loginService.getUser(JSON.stringify(fbObj)),
function (data) {
console.log(data);
},
function (result) {
console.error('Error', result.status);
}
[...]
私はChromeを使用しています。この問題を解決するために、他に何をしたらよいのかわかりません。オリジンからのヘッダーを受け入れるようにサーバーを設定したこともあります。
localhost
.
解決方法は?
CORSの問題に遭遇している。
これを修正/回避する方法はいくつかあります。
- CORSをオフにする。例えば クロームでCORをオフにする方法
- お使いのブラウザのプラグインを使用する
- nginxなどのプロキシを使用する。 設定例
- サーバーに必要な設定を行ってください。これは、EC2インスタンスにロードされているWebサーバーの要因です(これはあなたが"Amazon web service"によって意味するものと仮定しています)。あなたの特定のサーバーのために、あなたは以下を参照することができます。 有効なCORSのウェブサイト。
もっと詳しく言うと、ローカルホストから api.serverurl.com にアクセスしようとしているのです。これはまさにクロスドメインリクエストの定義です。
プロキシを使うことで、ブラウザはすべてのリクエストがローカルホストから来たと思い、実際にはローカルサーバーがリモートサーバーを呼び出すことになるのです。
api.serverurl.com が localhost:8000/api になり、ローカルの nginx や他のプロキシが正しい宛先に送信するようになるかもしれません。
ご好評につき、追加しました。 100%以上のCORS情報 ......味は同じ!
CORSを回避することは、単にフロントエンドを学習する人のために表示されるものです。 https://codecraft.tv/courses/angular/http/http-with-promises/
関連
-
fetch ネットワークリクエストラッパーの説明例
-
Vueの要素ツリーコントロールに破線を追加する説明
-
HTML5 LocalStorage ローカルストレージとセッションストレージの使用法
-
[解決済み] Access-Control-Allow-Originヘッダーはどのように機能するのですか?
-
[解決済み] XMLHttpRequestが読み込めない XXX 'Access-Control-Allow-Origin' ヘッダがない
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] Access-Control-Allow-Origin複数オリジンのドメイン?
-
[解決済み] REST APIからデータを取得しようとしたときに、要求されたリソースに'Access-Control-Allow-Origin'ヘッダーが存在しない。
-
[解決済み】「アクセス制御-許可-オリジン」がない - Node / Apacheのポートの問題
-
[解決済み] Firebaseストレージとアクセス制御・許可・オリジン
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vue3レスポンシブ対応のためのsetup+ref+reactive
-
Vueにシンプルなメモ帳機能を実装
-
vueディレクティブv-bindの使用と注意点
-
Vueでルートネスティングを実装する例
-
[解決済み】GETできない / Nodejsエラー
-
[解決済み】ERROR エラーです。スイッチのname属性が指定されていないフォームコントロールの値アクセッサがない
-
JavaScriptのStringに関する共通メソッド
-
[解決済み] Access-Control-Allow-Originヘッダーはどのように機能するのですか?
-
フロントエンド非同期(アシンク)ソリューション(全ソリューション)
-
[解決済み] Chromeの同一生成元ポリシーを無効にする