2017-11-18 22 views
1

VueJSアプリケーションとExpressJSサーバー側アプリケーションがあります。私のサーバー上で、私は次のようしている:要求ヘッダーフィールドアクセス制御ヘッダーエラーで許可されていないエラー

Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response.

私はこのような私の要求を送信しています:

import axios from 'axios' 

export default axios.create({ 
    baseURL: 'https://example.com', 
    timeout: 5000, 
    headers: { 
    'Authorization': 'Bearer ' + accessToken 
    } 
}) 

どのようにすることができ

var allowCrossDomain = function(req, res, next) { 
    res.header('Access-Control-Allow-Origin', req.headers.origin); 
    res.setHeader("Access-Control-Allow-Credentials", "true"); 
    res.setHeader("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT"); 
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization"); 
    next(); 
} 
app.use(allowCrossDomain); 

はしかし、私は次のエラーを取得しておきますこれを回避する?私は多くのソリューションを試して、これを読んでいます。どうやらために送信されますしAccess-Control-Allow-Headersヘッダーを引き起こしていない問題で

+0

サーバーはOPTIONSリクエストに応答していますか?ブラウザはリクエストが許可されているかどうかをプリフライトするために送信するものですか?私は、Chromeデバッガの[ネットワーク]タブを見て、ブラウザが送信しているものとサーバーが応答しているものを正確に確認することをお勧めします。通常、その情報で問題をより正確に見ることができます。 – jfriend00

答えて

1

コードを:私は以下読んだことがありますOPTIONSレスポンス - 具体的にはへの返信。

、プリフライトOPTIONSが正しく処理を受けることを確認NPM corsパッケージインストールすることを検討するには、次の

npm install cors 

をしてから、このような何か:CORSプリフライトOPTIONS要求を処理し、他のCORSます

var express = require('express') 
    , cors = require('cors') 
    , app = express(); 
app.options('*', cors()); // preflight OPTIONS; put before other routes 

を独自の処理をアプリケーションコードの最初から手動で記述する必要がないような側面があります。

https://www.npmjs.com/package/cors#configuration-optionには、すべてのオプションの詳細があります。

関連する問題