ASP.net WEB API CORS 404错误
我使用集成的ASP.net主机和WEB API创建了一个Windows服务。 主机和API工作正常。当我使用我的互联网浏览器时,我得到了回应 来自我的控制器,因此没有权限问题 Web服务配置: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
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: "*")]