【发布时间】:2021-08-22 19:14:49
【问题描述】:
我在我的 c# web API 项目中启用了 CORS,如下所示:
尝试全局启用 CORS
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
和 ApiController 级别
[EnableCors(origins:"*",headers:"*",methods:"*")]
public class MyAppController: ApiController
{
[AllowAnonymous]
[HttpGet]
public HttpResponseMessage TestApi()
{
}
}
颤动代码
final response =
await http.get(Uri.parse('http://localhost:44310/api/MyApp/TestApi'));
if (response.statusCode == 200) {
// If the server did return a 200 OK response,
// then parse the JSON.
return response.body;
} else {
// If the server did not return a 200 OK response,
// then throw an exception.
throw Exception('Failed to load album');
}
但是,两者都不起作用,并且在 Flutter Web 中仍然出现 XMLHttpRequest 错误。
此外,在“网络”选项卡中,浏览器不会针对特定 API 请求显示任何内容。
它访问 API 并从 API 发送响应,但在 Flutter Web 中未收到响应。
参考从这里为 C# Web Api 项目属性启用 CORS:https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api
我错过了什么吗?
【问题讨论】:
-
我不知道为什么提到的代码不起作用,因为对于 Web API,它应该像第三来源中提到的那样起作用。无论如何,将 IIS7 配置添加到 web.config 对我有用。
标签: c# asp.net flutter cors flutter-web