有可能是CORS(跨域资源共享)的问题。在服务器端添加允许CORS的头文件,例如:
app.Use(async (context, next) =>
{
context.Response.Headers.Add("Access-Control-Allow-Origin", "*");
context.Response.Headers.Add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
context.Response.Headers.Add("Access-Control-Allow-Headers", "Content-Type, X-Requested-With, Origin, Accept");
await next();
});
另外,在客户端的httpClient中需要添加一个拦截器来处理处理CORS错误,例如:
var httpClient = new HttpClient(new HttpClientHandler
{
ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => true
});
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
httpClient.BaseAddress = new Uri("https://example.com");
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
httpClient.DefaultRequestHeaders.AcceptLanguage.Add(new StringWithQualityHeaderValue("en-US"));
httpClient.DefaultRequestHeaders.UserAgent.Clear();
httpClient.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("Mozilla", "5.0"));
httpClient.DefaultRequestHeaders.Referrer = new Uri("https://example.com");
httpClient.DefaultRequestHeaders.Add("X-Requested-With", "XMLHttpRequest");
httpClient.DefaultRequestHeaders.CacheControl = new Cache-ControlHeaderValue
{
NoCache = true
};
httpClient.DefaultRequestHeaders.ConnectionClose = true;
httpClient.DefaultRequestHeaders.KeepAlive = false;
httpClient.DefaultRequestHeaders.ExpectContinue = false;
httpClient.Timeout = TimeSpan.FromMilliseconds(5000);
httpClient.DefaultRequestHeaders.AcceptEncoding.Clear();
httpClient.DefaultRequestHeaders.AcceptEncoding.Add(new StringWithQualityHeaderValue("gzip"));
httpClient.DefaultRequestHeaders.AcceptEncoding.Add(new StringWithQualityHeaderValue("deflate"));
httpClient.DefaultRequestHeaders.AcceptEncoding.Add(new StringWithQualityHeaderValue("br"));
httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + jwtToken);
httpClient.DefaultRequestHeaders.Add("Accept-Language", language);
httpClient.DefaultRequestHeaders.Add("User-Agent", "Blazor Server");
// Add a handler to check for CORS errors
httpClient.DefaultRequestHeaders.Add("X-Requested