Ass*_*ang 6 .net javascript api cors
我正在使用纯 JavaScript 向 .NET 6 中的最小 API 发出请求,但是当我在浏览器中打开它时,我收到以下消息:
CORS 策略已阻止从源“null”在“https://localhost:7252/v1/todos”获取数据:请求的资源上不存在“Access-Control-Allow-Origin”标头。不透明响应满足您的需求,将请求模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。
我已经在API中添加了CORS配置,但它不起作用:
fetch('https://localhost:7252/v1/todos')
.then(response => response.json()) ...
Run Code Online (Sandbox Code Playgroud)
builder.Services.AddCors(options => options.AddDefaultPolicy(builder =>
{
builder.WithOrigins(
"https://localhost:7252/v1/todos",
"https://localhost:7252");
}));
app.UseCors();
Run Code Online (Sandbox Code Playgroud)
你可能想延长一点
\n services.AddCors();\n \n app.UseCors(builder => builder\n .AllowAnyOrigin()\n .AllowAnyMethod()\n .AllowAnyHeader()\n);\nRun Code Online (Sandbox Code Playgroud)\n\n\nCORS 协议不允许
\n.AllowCredentials()同时指定通配符(任何)来源\n和凭据 ( )。如果需要支持凭据,则通过列出\每个来源来配置 CORS 策略 \xe2\x80\x93 @methos
这是完整的代码示例
\npublic class Startup\n{\nreadonly string MyAllowSpecificOrigins = "_myAllowSpecificOrigins";\n\npublic void ConfigureServices(IServiceCollection services)\n{\n services.AddCors(options =>\n {\n options.AddPolicy(name: MyAllowSpecificOrigins,\n builder =>\n {\n builder.WithOrigins("http://example.com",\n "http://www.contoso.com");\n });\n });\n\n // services.AddResponseCaching();\n services.AddControllers();\n}\n\npublic void Configure(IApplicationBuilder app, IWebHostEnvironment env)\n{\n if (env.IsDevelopment())\n {\n app.UseDeveloperExceptionPage();\n }\n\n app.UseHttpsRedirection();\n app.UseStaticFiles();\n app.UseRouting();\n\n app.UseCors(MyAllowSpecificOrigins);\n\n // app.UseResponseCaching();\n\n app.UseAuthorization();\n\n app.UseEndpoints(endpoints =>\n {\n endpoints.MapControllers();\n });\n}\n}\nRun Code Online (Sandbox Code Playgroud)\n\n