Request header was not present in the Access-Control-Allow-Headers list

后端 未结 3 762
借酒劲吻你
借酒劲吻你 2021-01-18 00:05

In my API, I have the following code:

public class CustomOAuthProvider : OAuthAuthorizationServerProvider
{

    public override Task MatchEndpoint(OAuthMatc         


        
3条回答
  •  借酒劲吻你
    2021-01-18 00:40

    I've found a piece of code here which fixed it for me.

    //Startup.cs
    public void ConfigureOAuth(IAppBuilder app)
    {
        app.Use(async (context, next) =>
        {
            IOwinRequest req = context.Request;
            IOwinResponse res = context.Response;
            if (req.Path.StartsWithSegments(new PathString("/oauth2/token")))
            {
                var origin = req.Headers.Get("Origin");
                if (!string.IsNullOrEmpty(origin))
                {
                    res.Headers.Set("Access-Control-Allow-Origin", origin);
                }
                if (req.Method == "OPTIONS")
                {
                    res.StatusCode = 200;
                    res.Headers.AppendCommaSeparatedValues("Access-Control-Allow-Methods", "GET", "POST");
                    res.Headers.AppendCommaSeparatedValues("Access-Control-Allow-Headers", "authorization", "content-type", "x-api-applicationid", "access-control-allow-origin");
                    return;
                }
            }
            await next();
        });
    
        // rest of owin Oauth config
    }
    

    I removed the MatchEndpoint method from my CustomOAuthProvider.cs

提交回复
热议问题