我有 Asp .net core 3 web API。我正在使用 Fetch 调用其中一个 POST API,然后收到以下错误:Access to fetch at 'https://localhost:44395/api/challengeresponse/Verify' from origin 'null' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.Failed to load resource: net::ERR_FAILED因此,我研究并尝试在 Web API 代码中遵循以下内容:启动.csprivate readonly string AllowedOriginPolicy = "_AllowedOriginPolicy";public void ConfigureServices(IServiceCollection services) { services.AddCors(options => { options.AddPolicy(AllowedOriginPolicy, builder => { var corsOrigins = new String[1] { "https://localhost:44395" }; builder.WithOrigins(corsOrigins).AllowCredentials().AllowAnyHeader().AllowAnyMethod(); }); }); services.AddControllers(); }public void Configure(IApplicationBuilder app, IWebHostEnvironment env){ app.UseCors(AllowedOriginPolicy); //at the end of the method.}尽管如此,我还是遇到了同样的错误。我的 Fetch 代码是:示例.jsasync function fetchdata(){ let _data = { OriginalData: "coordinateid", Signature: "URL", Certificate: "introduction" } const response = await fetch('https://localhost:44395/api/challengeresponse/Verify', { credentials: 'include', method: "POST", body: JSON.stringify(_data), headers: {"Content-type": "application/json; charset=UTF-8"}}).then(response => response.json()) .then(json => console.log(json)).catch(err => console.log(err));}这是一个非常常见的问题,但我仍然无法解决。请帮忙。编辑:请建议两种类型的URL。因为我还在主服务器上部署了这个 Web API,所以从服务器 URL 访问也会出现相同的错误。http://https://
1 回答
天涯尽头无女友
TA贡献1831条经验 获得超9个赞
此 url 在https://localhost:44395
var corsOrigins = new String[1] { “https://localhost:44395” };
它应该是客户端的 url 。它应该改成这样:
var corsOrigins = new String[1] { "[client url]" };
注意:无论您使用什么客户端,请确保它在服务器上运行。
添加回答
举报
0/150
提交
取消