簡體   English   中英

IIS 中托管的 Angular 11 應用程序在調用 Asp.Net Web API 時會出現 CORS 問題

[英]Angular 11 app hosted in IIS giving CORS issue when calling Asp.Net Web API

我們有以下設置

Angular 11 / TypeScript 應用程序:使用 SSL/TLS 證書 ( HTTPS ) 托管在 IIS 中,並使用 withCredentials 標頭將用戶憑據 (NTLM) 發送到后端 API。 同樣對於 CORS,我們正在傳遞標頭 'Access-Control-Allow-Origin' : '*'

Asp.Net Web API (.Net 6) :使用 Http.Sys(支持 NTLM)和使用HTTP自托管。 為了支持 CORS,我們使用這個

builder.Services.AddCors(options => options.AddDefaultPolicy(b => b.SetIsOriginAllowed(_ => true)
        .AllowAnyHeader()
        .AllowAnyMethod()
        .AllowCredentials()));

當 Angular 應用程序調用后端 API 時,它會收到與 CORS 相關的錯誤。

對預檢請求的響應未通過訪問控制檢查:預檢請求不允許重定向。

但是當我們在沒有 SSL/TLS 證書(即 HTTP)的情況下運行 Angular 應用程序時,它可以正常工作。

那么這個 CORS 問題是因為 Angular 應用程序是 HTTPS 而后端 API 是 HTTP 而發生的嗎? 如果是,那么我們該如何解決這個問題?

提前致謝。

那么這個 CORS 問題是因為 Angular 應用程序是 HTTPS 而后端 API 是 HTTP 而發生的嗎? 如果是,那么我們該如何解決這個問題?

TLS 與非 TLS 請求的不匹配會引發如下情況:

CORS 策略已阻止從源“https://example.com”獲取“https://another-site.com/”的訪問權限:請求中不存在“Access-Control-Allow-Origin”標頭資源。

您收到此錯誤是因為預檢 OPTIONS 請求被某種中間件路由重定向(我假設)。

您可以在此處閱讀有關如何配置 OPTIONS 預檢請求的信息。 有很多選擇取決於您的要求,所以我不會發布建議。

https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-6.0#preflight-requests

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM