运行网站时出现以下错误:
无法加载 http://localhost:54721/api/Auth/GetMenuItemsByRoleId/null: 'Access-Control-Allow-Origin'标头包含多个值 'http://localhost:4200,*',但只允许一个。起源 因此,不允许访问“ http://localhost:4200”
为解决此问题,我在每个控制器中添加了以下代码,效果很好。
[EnableCors("http://localhost:54721/", "*", "*")]
所以代码将变成这样:
但是此修复程序适用于每个控制器,应避免这种情况。
是否有更好的解决方法,例如web.config,我可以在一个地方做到这一点?
我的startup.cs如下:
public partial class Startup
{
public static OAuthAuthorizationServerOptions OAuthOptions { get; private set; }
public void Configuration(IAppBuilder app)
{
HttpConfiguration httpconfig = new HttpConfiguration();
WebApiConfig.Register(httpconfig);
//enable cors origin requests
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
//app.
ConfigureOAuth(app);
}
public void ConfigureOAuth(IAppBuilder app)
{
double timeout = Convert.ToDouble(ConfigurationManager.AppSettings["Timeout"].ToString());
OAuthAuthorizationServerOptions OAuthserverOptions = new OAuthAuthorizationServerOptions()
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/token"),
AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(10),
Provider = new SimpleAuthorizationServerProvider()
};
//Token generation
app.UseOAuthAuthorizationServer(OAuthserverOptions);
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
}
答案 0 :(得分:0)
是的,有,你应该那样使用。
创建一个配置类,如本example所示。
您的cors配置现在仍然不正确。您必须允许http://localhost:4200
,而不是api http://localhost:54721
的网址。