Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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
Asp.net WebApi-CORS策略_Asp.net_Asp.net Mvc_Asp.net Web Api_Cors - Fatal编程技术网

Asp.net WebApi-CORS策略

Asp.net WebApi-CORS策略,asp.net,asp.net-mvc,asp.net-web-api,cors,Asp.net,Asp.net Mvc,Asp.net Web Api,Cors,我有Asp.net web api项目作为后端 并将js作为前端 我试图通过React发出api请求,以便使用我在后端创建的api端点从数据库获取数据或将数据发布到数据库 第一次GET和POST请求都出现CORS错误, 然后我把它添加到我的Web.config文件中 <system.webServer> <httpProtocol> <customHeaders> <add name="Access-Control-

我有Asp.net web api项目作为后端 并将js作为前端 我试图通过React发出api请求,以便使用我在后端创建的api端点从数据库获取数据或将数据发布到数据库

第一次GET和POST请求都出现CORS错误, 然后我把它添加到我的Web.config文件中

<system.webServer>
  <httpProtocol>
     <customHeaders>
       <add name="Access-Control-Allow-Origin" value="*" />
       <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
       <add name="Access-Control-Allow-Headers" value="Content-Type, Accept, Pragma, Cache-Control, Authorization " />
     </customHeaders>
   </httpProtocol>
  </system.webServer>

职位

[HttpPost]
公共IHttpActionResult帖子(列表行)
{
尝试
{
使用(DbModel DbModel=new DbModel())
{
dbModel.Provider\u status.AddRange(行);
dbModel.SaveChanges();
}
}
捕获{}
返回Ok(“创建的记录”);
}

安装Cors软件包

  • 安装软件包Microsoft.AspNet.WebApi.Cors

  • 在WebApiConfig中启用Cors

  • 像这样装饰你的控制器

  • 来源:

    我可以设置来源:“*”?[EnableCors(来源:”,标题:“,方法:”]我将此添加到我的控制器,现在GET和POST不起作用,我收到以下错误消息:“访问控制允许来源”标题包含多个值“,*”,但只允许一个。您可以将全局策略添加到web配置中,如://global Policies EnableCorsAttribute cors=new EnableCorsAttribute(“,”,“GET,POST,UPDATE”);配置使能cors(cors);或//为特定控制器config.EnableCors()启用CORS;[EnableCorsaAttribute(“,”,“*”)我在这里找到了解决方案我在这里找到了解决方案
    public IHttpActionResult Get(string password)
            {
                if (password == "000")
                {
                    using (DbModel dbModel = new DbModel())
                    {
                        return Ok(dbModel.Provider_status.ToList());
                    }
                }
                else
                {
                    return null;
                }
            }
    
    
    [HttpPost]
            public IHttpActionResult Post(List<Provider_status> rows)
            {
                try
                {
                    using (DbModel dbModel = new DbModel())
                    {
                        dbModel.Provider_status.AddRange(rows);
                        dbModel.SaveChanges();
                    }
                }
                catch { }
                return Ok("record created");
            }
    
        {
            public static void Register(HttpConfiguration config)
            {
                // New code
                config.EnableCors();
    
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
            }
        }
    
       [EnableCors(origins: "http://mywebclient.azurewebsites.net", headers: "*", methods: "*")]
        public class TestController : ApiController