[解決済み] Uncaught (in promise) TypeError: フェッチに失敗してCorsエラー
質問
データベースからデータを取り戻すのに問題があります。私は問題を説明するために最善を尽くしています。
1.下記のコードの中で、"mode":"no-cors" を残すと、Postmanでサーバーからデータを取り戻すことができますが、自分のサーバーからではできません。クライアント側のエラーと思われます。
- mode":"no-cors" を削除すると、2つのエラーが表示されます。 -Fetch APIはロードできません。 http://localhost:3000/ . リクエストヘッダーフィールドaccess-control-allow-originは、プリフライトレスポンスのAccess-Control-Allow-Headersで許可されていません。 -Uncaught (in promise) TypeError: フェッチに失敗しました
クイックブラウジングでは、quot;mode":"no-cors" を入れることでこのエラーを修正することを提案しましたが、それは正しいこととは思えません。
そこで、どなたかこの問題にアプローチする方法をご存知の方がいらっしゃればと思いました。
本当に私が十分に明確であったことを願っていますが、ここで明確な説明を与えていないことは確かです :S
function send(){
var myVar = {"id" : 1};
console.log("tuleb siia", document.getElementById('saada').value);
fetch("http://localhost:3000", {
method: "POST",
headers: {
"Access-Control-Allow-Origin": "*",
"Content-Type": "text/plain"
},//"mode" : "no-cors",
body: JSON.stringify(myVar)
//body: {"id" : document.getElementById('saada').value}
}).then(function(muutuja){
document.getElementById('väljund').innerHTML = JSON.stringify(muutuja);
});
}
解決方法は?
追加
mode:'no-cors'
をリクエストヘッダに追加することで、 レスポンスがないことが保証されます。
非標準のヘッダーを追加する。
'access-control-allow-origin'
はOPTIONSプリフライトリクエストを引き起こし、POSTリクエストを送信するためには、サーバーが正しく処理する必要があります。
また
fetch
が間違っている ...
fetch
に対する "promise"を返します。
Response
のプロミスクリエイターを持つオブジェクトです。
json
,
text
など、コンテンツの種類に応じて...
つまり、サーバー側でCORSが正しく処理されている場合(コメントからすると処理されているようです)、次のように動作するはずです。
function send(){
var myVar = {"id" : 1};
console.log("tuleb siia", document.getElementById('saada').value);
fetch("http://localhost:3000", {
method: "POST",
headers: {
"Content-Type": "text/plain"
},
body: JSON.stringify(myVar)
}).then(function(response) {
return response.json();
}).then(function(muutuja){
document.getElementById('väljund').innerHTML = JSON.stringify(muutuja);
});
}
しかし、このコードは JSON にはあまり興味がないので (結局はオブジェクトを文字列化するわけですから)、次のようにする方が簡単です。
function send(){
var myVar = {"id" : 1};
console.log("tuleb siia", document.getElementById('saada').value);
fetch("http://localhost:3000", {
method: "POST",
headers: {
"Content-Type": "text/plain"
},
body: JSON.stringify(myVar)
}).then(function(response) {
return response.text();
}).then(function(muutuja){
document.getElementById('väljund').innerHTML = muutuja;
});
}
関連
-
[解決済み】Uncaught ReferenceError: angular is not defined - AngularJSが動作しない。
-
[解決済み】このオブジェクトの "forEach "はなぜ関数でないのですか?
-
[解決済み] REST APIからデータを取得しようとしたときに、要求されたリソースに'Access-Control-Allow-Origin'ヘッダーが存在しない。
-
[解決済み] プリフライト要求に対する応答がアクセス制御チェックを通過しない
-
[解決済み] CORSです。資格情報フラグが true の場合、Access-Control-Allow-Origin でワイルドカードを使用できない。
-
[解決済み] リクエストヘッダーフィールドAccess-Control-Allow-Headersはプリフライトレスポンスでそれ自身は許可されません。
-
[解決済み】Access-Control-Allow-OriginでOriginが許可されない。
-
[解決済み】「アクセス制御-許可-オリジン」がない - Node / Apacheのポートの問題
-
[解決済み】http://localhost CORS originが機能しないのはなぜですか?
-
[解決済み】リクエストヘッダーフィールドのAccess-Control-Allow-Headersが許可されない。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】React Js: Uncaught (in promise) SyntaxError: 位置 0 の JSON で予期しないトークン < が発生しました。
-
[解決済み】SecurityError: オリジンを持つフレームがクロスオリジンフレームにアクセスするのをブロックした
-
[解決済み] 解決済み】clearInterval()が動作しない [重複] [重複]
-
[解決済み】NodeJS "ESモジュールをロードするためにインポートを使用する必要があります。"
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み】コンソールがUnterminated JSX contentsエラーを投げる【終了しました
-
[解決済み】JS ファイルが net::ERR_ABORTED 404 (Not Found) を取得する)
-
[解決済み】Vueのテンプレートまたはレンダー関数が定義されていない 私はどちらも使っていないのですが?
-
[解決済み】Uncaught ReferenceError。Firebase は定義されていません。
-
[解決済み] Access-Control-Allow-Origin複数オリジンのドメイン?