ASP.net WEB API CORS 404错误

ASP.net WEB API CORS 404错误,asp.net,web-services,asp.net-web-api,cors,Asp.net,Web Services,Asp.net Web Api,Cors,我使用集成的ASP.net主机和WEB API创建了一个Windows服务。 主机和API工作正常。当我使用我的互联网浏览器时,我得到了回应 来自我的控制器,因此没有权限问题 Web服务配置: public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddCors(); services.Configure<MvcOptions>(opti

我使用集成的ASP.net主机和WEB API创建了一个Windows服务。 主机和API工作正常。当我使用我的互联网浏览器时,我得到了回应 来自我的控制器,因此没有权限问题

Web服务配置:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
    services.AddCors();
    services.Configure<MvcOptions>(options =>
    {
        options.Filters.Add(new CorsAuthorizationFilterFactory("AllowAll"));
    });
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    loggerFactory.AddConsole(Configuration.GetSection("Logging"));
    loggerFactory.AddDebug();

    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
        app.UseBrowserLink();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
    }

    app.UseStaticFiles();

    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });

    app.UseCors(builder =>
    {
        builder.AllowAnyOrigin()
        .AllowAnyHeader()
        .AllowAnyMethod();
    });
}
但如果我试图得到响应,我会得到错误:404文件未找到,请注意:

XML分析错误:未找到根元素位置: 第1行第1列:

如果打开此页面,我将获得原始数据视图:

[{“computerName”:“XX-XX-XX-XX-XX-XX”,“computerIP”:“192.168.XX.XX”,“lastLogin”:“2017-XX-29T16:XX:XX.438988+02:00”,“plannedShutdownTime”:“2017-XX-02T09:XX:XX.438988+02:00”,“isRunning”:true,“hoursToSleep”:48.0}]

如果我看一下标题信息,一切都很好。
我需要帮助,我找不到任何bug。

我认为您的cors配置不正确。Web客户端和Web api连接不同,因此我理解您的问题

我在下面写我们的配置,以便您可以检查它

ASP.NET(OWIN) Startup.cs:

app.UseCors(CorsOptions.AllowAll)
Web配置:

<system.webServer>
  <handlers>
    <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
    <remove name="OPTIONSVerbHandler" />
    <remove name="TRACEVerbHandler" />
    <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
  </handlers>
</system.webServer>
App_Start/WebApiConfig-注册方法:

config.EnableCors();
食物控制员:

[Route("")]
public class TimerController : Controller
{
public static List<Timer> timers = new List<Timer> { };

// url:localhost:48523
public IEnumerable<Timer> GetAllTimers()
{
    return timers;
}
}
[EnableCors(origins: "*", headers: "*", methods: "*")]

CORS错误通常为405,404表示位置问题。您的url看起来可疑,您没有API路径,请尝试添加该路径。
Install-Package Microsoft.AspNet.WebApi.Cors
config.EnableCors();
[EnableCors(origins: "*", headers: "*", methods: "*")]