Blazor的httpClient无法进行外部API调用。
创始人
2024-12-21 03:00:26
0

有可能是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

相关内容

热门资讯

透视辅助"wpk软件... 透视辅助"wpk软件是正规的吗"一贯是真的辅助软件(哔哩哔哩)1、wpk软件是正规的吗透视辅助软件激...
透视辅助"德州私人局... 透视辅助"德州私人局脚本"都是真的是有辅助神器(哔哩哔哩)1、该软件可以轻松地帮助玩家将德州私人局脚...
透视教你"xpoke... 透视教你"xpoker辅助控制"一贯是真的辅助挂(哔哩哔哩)1.xpoker辅助控制 选牌创建新账号...
透视总结"we po... 透视总结"we poker辅助器v3.3"一直真的是有辅助脚本(哔哩哔哩)1、we poker辅助器...
透视揭露"werpl... 您好,werplan有挂吗这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很...
透视有挂"aa po... 透视有挂"aa poker透视软件"总是真的是有辅助攻略(哔哩哔哩)1、aa poker透视软件脚本...
透视普及"wejok... 透视普及"wejoker辅助软件"真是是真的辅助工具(哔哩哔哩)1、wejoker辅助软件模拟器是什...
透视详细"德普之星私... 透视详细"德普之星私人局透视"一直真的有辅助教程(哔哩哔哩)1、超多福利:超高返利,海量正版游戏,德...
透视详情"wepok... 透视详情"wepoker有没有辅助"真是真的是有辅助方法(哔哩哔哩)1、每一步都需要思考,不同水平的...
透视揭幕"wepok... 透视揭幕"wepokerplus透视脚本免费"都是存在有辅助工具(哔哩哔哩)1、操作简单,无需wep...