localhost上で実行されているサーバ(つまり/のディレクトリリスト)からリソースを取得しようとするファイルシステムから静的ページを開きます。ブラウザがこの要求を転送することを拒否し、提案する:'no-cors'モードでリソースを取得すると、body-parserが失敗するのはなぜですか?
If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
それから私は、「は、CORS」を使用していないリクエストを送信:サーバー側で
let body=JSON.stringify({action:"listfiles",path:"/"})
let headers = new Headers()
headers.append("Content-Type", "application/json");
fetch('http://localhost:9000/ajax',{
method: 'POST',
headers: headers,
body: body,
mode: 'no-cors'
}).then(
response=>response.json()
).then(
data=>this.onload(data)
)
私は次のように急行を使用します。
app.use('/ajax',bodyParser.json())
app.post("/ajax",function(req,res){
let action=req.body.action
console.log(`ajax ${action}`)
}
ブラウザが通じリクエストをすることができ、さらにはapp.post
がちょうどリクエストボディがcorreを解析されず、要求を取得し、この時間ctlyの代わりに'listfiles'
action
の値はundefined
です。 (localhostからページをロードしても同じ問題は発生しません)。
https://stackoverflow.com/questions/42254685/text-response-is-empty-when-using-fetch/42255007#42255007およびhttps://stackoverflow.com/questions/43317967/handle-response-構文エラー - 予期しない入力の終わり/ 43319482#43319482基本的には、 "mode: 'no-cors'"を使用することは決してありません。フロントエンドJavaScriptが応答本体とヘッダーにアクセスするのを完全にブロックするようブラウザに指示します。 – sideshowbarker