Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 本地主机请求:/origin';http://localhost:' 已被CORS阻止_C#_.net_Api_Model View Controller - Fatal编程技术网

C# 本地主机请求:/origin';http://localhost:' 已被CORS阻止

C# 本地主机请求:/origin';http://localhost:' 已被CORS阻止,c#,.net,api,model-view-controller,C#,.net,Api,Model View Controller,我制作了一个asp.net web api,当我试图通过在api内部创建视图来访问它时,它可以完美地工作。我已经做了一个注册,一个登录和一个数据页,在那里你是重定向后登录。其中显示了包含一些数据的表格。这可以通过api视图本身完美地工作。现在这里出现的问题是,如果我尝试注册,将另一个项目添加到解决方案中,它将完美地工作。但我似乎无法登录。我被cors错误阻塞了。尽管我在api项目中启用了cors 这是jquery: $.ajax({ ur

我制作了一个asp.net web api,当我试图通过在api内部创建视图来访问它时,它可以完美地工作。我已经做了一个注册,一个登录和一个数据页,在那里你是重定向后登录。其中显示了包含一些数据的表格。这可以通过api视图本身完美地工作。现在这里出现的问题是,如果我尝试注册,将另一个项目添加到解决方案中,它将完美地工作。但我似乎无法登录。我被cors错误阻塞了。尽管我在api项目中启用了cors

这是jquery:

            $.ajax({

                url: 'http://localhost:58334/token',
                method: 'POST',
                contentType: 'application/json',
                data: {
                    username: $('#txtUsername').val(),
                    password: $('#txtPassword').val(),
                    grant_type: 'password'
                },

                success: function (response) {
                    sessionStorage.setItem("accessToken", response.access_token);
                    sessionStorage.setItem("userName", response.userName);
                    window.location.href = "Data.html";
                },

                error: function (jqXHR) {
                    $('#divErrorText').text(jqXHR.responseText);
                    $('#divError').show('fade');
                }
            });
        });

startup.auth.cs类: 公共部分类启动 { 静态启动() { PublicClientId=“self”


您如何访问“localhost:5833”?您是否在Web服务器上托管了客户端/应用程序?如果您使用文件协议“file:\”访问服务器资源,由于浏览器的安全性,您可能会收到此cors错误。(例如,双击以在浏览器中打开HTML文件时使用的是文件:\protocol)

我得到的错误是:从源站“”访问“”处的XMLHttpRequest已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许源站”标头。是否尝试添加默认凭据而不是用户名和密码?当我按登录时另一个项目的消费网页中的按钮locahost:58334/令牌链接没有点击。它给了我cors错误。如果你想在zip文件中共享整个项目,我可以从vs中的按钮运行它。两个项目位于同一个解决方案中。我通过右键单击它查看客户端页面,同时运行api。这里是一个link到整个项目。用户数据库存在于项目内部。我只需要获得一种从客户端应用程序项目登录的方法
        UserManagerFactory = () => new UserManager<IdentityUser>(new UserStore<IdentityUser>());

        OAuthOptions = new OAuthAuthorizationServerOptions
        {
            TokenEndpointPath = new PathString("/Token"),
            Provider = new ApplicationOAuthProvider(PublicClientId, UserManagerFactory),
            AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
            AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(60),
            AllowInsecureHttp = true
        };
    }

    public static OAuthAuthorizationServerOptions OAuthOptions { get; private set; }

    public static Func<UserManager<IdentityUser>> UserManagerFactory { get; set; }

    public static string PublicClientId { get; private set; }


    public void ConfigureAuth(IAppBuilder app)
    {

        app.UseCookieAuthentication(new CookieAuthenticationOptions());
        app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);   
        app.UseOAuthBearerTokens(OAuthOptions);

    }
        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        EnableCorsAttribute cors = new EnableCorsAttribute("*", "*", "*");
       config.EnableCors(cors);
    }
}