0
[HttpPost]
    public HttpResponseMessage Post(HttpRequestMessage request)
    {
        try
        {
            HttpResponseMessage result = null;
            var httpRequest = HttpContext.Current.Request;
            var filePath = HttpContext.Current.Server.MapPath("~/camera/"); 
            string FileName = Guid.NewGuid().ToString() + ".jpeg";
            if (!Directory.Exists(filePath))
                Directory.CreateDirectory(filePath);
            if (httpRequest.Files.Count > 0)
            {
            
                foreach (string file in httpRequest.Files)
                {
                    var postedFile = httpRequest.Files[file];
                    postedFile.SaveAs(filePath + FileName);
                    
                }
                result = Request.CreateResponse(HttpStatusCode.Created, FileName);
            }
            else
            {
                result = Request.CreateResponse(HttpStatusCode.BadRequest);
                FileName = "";
            }
            return result;
        }
        catch (Exception)
        {
            return Request.CreateResponse(HttpStatusCode.BadRequest);
        }
    }

but webcam.js return Access to XMLHttpRequest at 'http://api.xx.xx/UploadImage' from origin 'null' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

WebApiConfig

`public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
       
        config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("multipart/form-data"));
        var cors = new EnableCorsAttribute("*", "*", "*");
        config.EnableCors(cors);
        
        config.MapHttpAttributeRoutes();

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

0 回答 0