ポート3000でExpressを使用するサーバーとポート4200でangular 7を使用するクライアントを実行しています。リクエストを送信すると、CORSの問題が発生します。
Origin ' http:// localhost:42 'から ' http:// localhost:3000/drug 'のXMLHttpRequestへのアクセスがCORSポリシーによってブロックされました:いいえ 'アクセス-Control-Allow-Origin 'ヘッダーが要求されたリソースに存在します。
私はcorsパッケージを使用するようなすべてのソリューションをオンラインで試し、以下のコードのようにルーターの前にミドルウェアを設定しました( Angular 6-要求されたリソースに 'Access-Control-Allow-Origin'ヘッダーがありません ) 。しかし、それでも解決されず、同じエラーが発生し続けます。 CORSがすべてのソリューションで解決されないという同じ問題がありますか?手伝っていただけませんか?
app.use((req, res, next) => {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
res.header(
"Access-Control-Allow-Header",
"Origin, X-Requested-With, Content-Type, Accept"
);
next();
});
app.use((req, res, next) => {
res.header("Access-Control-Allow-Origin", "http://localhost:4200");
res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
res.header(
"Access-Control-Allow-Header",
"Origin, X-Requested-With, Content-Type, Accept"
);
next();
});
コードをルーティングする前に、このコード行app.use(cors());
を配置します。 (cors
パッケージをインストールしたと仮定します)。
答えは遅すぎると思いますが、将来誰かのために:
サーバー側でオンにする必要があります。私は.Net開発者なので、.Netコアアプリの例を示します。スタートアップファイルメソッドConfigureServices
では、次のコードを追加する必要があります
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder.WithOrigins("http://localhost:4200")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
});
その後、メソッドConfigure
を編集する必要があります。 UseMvc
を呼び出す前に次の行を追加
app.UseCors("CorsPolicy");
それで全部です。この答えが誰かのお役に立てば幸いです。