Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.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# 401.2从MVC项目调用WEB API时的响应_C#_Asp.net Web Api_Cors - Fatal编程技术网

C# 401.2从MVC项目调用WEB API时的响应

C# 401.2从MVC项目调用WEB API时的响应,c#,asp.net-web-api,cors,C#,Asp.net Web Api,Cors,我正在通过Visual studio在端口49374上本地运行一个WEB API项目 然后,我通过VS在端口57062上本地运行一个MVC项目 我正试图从MVC项目(57062)调用我的WEB API项目(49374)中的API,但得到了401.2响应,请参见以下内容: 当我直接从浏览器调用API时,它工作得很好 CORS在Web API Web配置中设置如下: 我不知道这个问题可能是什么——有人能提出什么建议吗?我也遇到过同样的问题。IIS Express似乎未使用web.config

我正在通过Visual studio在端口49374上本地运行一个WEB API项目

然后,我通过VS在端口57062上本地运行一个MVC项目

我正试图从MVC项目(57062)调用我的WEB API项目(49374)中的API,但得到了401.2响应,请参见以下内容:

当我直接从浏览器调用API时,它工作得很好

CORS在Web API Web配置中设置如下:



我不知道这个问题可能是什么——有人能提出什么建议吗?

我也遇到过同样的问题。IIS Express似乎未使用web.config中的自定义标题

我通过在global.asax.cs中添加以下内容来修复它:

    protected void Application_AuthenticateRequest(object sender, EventArgs e)
    {
        if (Context.Request.Headers.AllKeys.Contains("Origin"))
        {
            Context.Response.AddHeader("Access-Control-Allow-Origin", "http://localhost:57062");
            Context.Response.AddHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
            Context.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, PATCH, OPTIONS");
            Context.Response.AddHeader("Access-Control-Allow-Credentials", "true");
            if (Context.Request.HttpMethod == "OPTIONS") Context.Response.End();
        }
    }
    protected void Application_AuthenticateRequest(object sender, EventArgs e)
    {
        if (Context.Request.Headers.AllKeys.Contains("Origin"))
        {
            Context.Response.AddHeader("Access-Control-Allow-Origin", "http://localhost:57062");
            Context.Response.AddHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
            Context.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, PATCH, OPTIONS");
            Context.Response.AddHeader("Access-Control-Allow-Credentials", "true");
            if (Context.Request.HttpMethod == "OPTIONS") Context.Response.End();
        }
    }