Javascript Cors问题API不在同一服务器上
我正在使用WebAPI2。在我的WebApiConfig中,我有这个Javascript Cors问题API不在同一服务器上,javascript,angularjs,asp.net-web-api,cors,Javascript,Angularjs,Asp.net Web Api,Cors,我正在使用WebAPI2。在我的WebApiConfig中,我有这个 private static void EnableCrossSiteRequests(HttpConfiguration config) { var origin = WebConfigurationManager.AppSettings["origin"]; var cors = new EnableCorsAttribute( origins: "*
private static void EnableCrossSiteRequests(HttpConfiguration config)
{
var origin = WebConfigurationManager.AppSettings["origin"];
var cors = new EnableCorsAttribute(
origins: "*",
headers: "*",
methods: "*");
config.EnableCors(cors);
}
寄存器方法
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
EnableCrossSiteRequests(config);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Filters.Add(new ErrorHandler());
}
从我的理解来看,这不是我所需要的一切吗?当它们一起托管时,它在我的开发计算机上工作。但是现在一个在web服务器上,API在另一个web服务器上
我越来越——原点。。。在访问控制允许源标题中找不到。
我已将其设置为允许所有原点。我已经尝试将其添加到web配置中,以及其他围绕堆栈溢出发布的方法。我不明白为什么会被拒绝
前端是有角度的,使用Ngresource进行请求
如果我使用ChromeDevTools中的Network选项卡,对请求的响应是200 OK,之后不会发生任何其他事情。我一整天都在寻找解决办法,到目前为止,我所尝试的都没有奏效
多谢各位
从我的理解来看,这不是我所需要的一切吗
没有。您应该使用[EnableCors]
属性装饰要跨域调用的Web API控制器/操作:
[EnableCors(origins: "http://mywebclient.azurewebsites.net", headers: "*", methods: "*")]
public class MyController: ApiController
{
...
}
这里有一个关于这个主题的示例。我在WebAiiConfig文件的Register方法中启用了它。这将使它在全球范围内发挥作用。我在很多地方读到,这是你如何在全球范围内启用Cors的。我编辑了我的原始帖子来展示它。是的,我看到了你的帖子。现在尝试将我的答案中所示的属性添加到控制器。不要相信你所读到的一切:-)可以做[EnableCors]它需要参数,是的,你是对的。您需要指定参数。我已使用文档中的示例更新了我的答案。尝试了此操作,[EnableCors(来源:“”,标题:“”,方法:“*”)(astrisks允许所有)得到相同的错误:(在此处查找更多详细信息。。。