正在研究ASP.net核心2.1 Web API项目。我需要启用API,以便我们也正在开发的客户端应用程序可以访问该API。
到目前为止,我发现发布到IIS的唯一方法是执行手动过程:
我想知道是否还有更直接的方法可以做到这一点。
构建此发行版还需要花费一些时间,因此对于开发环境而言,这是一个非常缓慢的过程。问题是,在集成测试服务器上与F5一起运行时,我们不能允许外部访问WEB api。我们如何启用更敏捷的测试环境?
另一个问题是,当从JavaScript应用程序调用例如fetch('MyAPIServer / api / MyItems')时,出现了CORS错误:
Failed to load http://localhost:86/api/shit: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8082' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled
在开发此类应用程序时,是否绝对需要启用CORS?
如果我这样获取:
fetch(
`http://localhost:86/api/shit`,{mode: 'no-cors'}
)
我得到:
Uncaught (in promise) SyntaxError: Unexpected end of input
at eval (Pos.vue?7f37:68)
答案 0 :(得分:0)
就CORs问题而言,您可以将以下内容添加到启动中:
public void ConfigureServices(IServiceCollection services)
{
// Rest of config stuff ...
services.AddCors();
}
然后,您还需要添加以下内容。
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseCors(builder =>
{
builder.WithOrigins("http://localhost:8080",
"http://localhost:8081",
"http://localhost:8082")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
});
app.UseMvc();
}