我在使用Web API 2.在我的WebApiConfig中,我有這個。Cors問題API不在同一臺服務器上
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服務器上。
我得到 - Origin ...未在Access-Control-Allow-Origin標題中找到。
我把它設置爲允許所有Origin。我已經嘗試在Web配置中添加它,並在Stack overflow周圍發佈其他方法。我不明白爲什麼被拒絕?
前端是Angular,使用Ngresource進行請求。
如果我在chrome開發工具中使用網絡選項卡,則對請求的響應爲200 OK,此後不會發生任何其他事情。一直在尋找解決方案,迄今爲止我沒有嘗試過的解決方案。
謝謝。
找到更多的細節在這裏... http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api –