我尝试了本文中所写的所有方法:http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api,但都不起作用。我正在尝试使用angularJS从webAPI2 (MVC5)获取数据,以便在另一个域中使用。
我的控制器看起来像这样:
namespace tapuzWebAPI.Controllers
{
[EnableCors(origins: "http://local.tapuz.co.il", headers: "*", methods: "*", SupportsCredentials = true)]
[RoutePrefix("api/homepage")]
public class HomePageController : ApiController
{
[HttpGet]
[Route("GetMainItems")]
//[ResponseType(typeof(Product))]
public List<usp_MobileSelectTopSecondaryItemsByCategoryResult> GetMainItems()
{
HomePageDALcs dal = new HomePageDALcs();
//Three product added to display the data
//HomePagePromotedItems.Value.Add(new HomePagePromotedItem.Value.FirstOrDefault((p) => p.ID == id));
List<usp_MobileSelectTopSecondaryItemsByCategoryResult> items = dal.MobileSelectTopSecondaryItemsByCategory(3, 5);
return items;
}
}
}
发布于 2015-06-17 16:11:39
@Mihai-Andrei Dinculescu的答案是正确的,但为了搜索者的利益,还有一个微妙的点可能会导致这个错误。
在网址末尾添加'/‘将使EnableCors在所有情况下都无法工作(例如,从主页)。
也就是说,这将不起作用
var cors = new EnableCorsAttribute("http://testing.azurewebsites.net/", "*", "*");
config.EnableCors(cors);
但这将会起作用:
var cors = new EnableCorsAttribute("http://testing.azurewebsites.net", "*", "*");
config.EnableCors(cors);
如果使用EnableCors属性,效果是相同的。
发布于 2016-07-31 05:45:15
这可能是因为安装了Cors nuget包。
如果您在从nuget安装和启用cors后遇到此问题,那么您可以尝试重新安装web Api。
在包管理器中,运行Update-Package Microsoft.AspNet.WebApi -reinstall
发布于 2014-12-16 20:09:00
试试这个,以确保您正确配置了CORS:
[EnableCors(origins: "*", headers: "*", methods: "*")]
还是不能工作吗?检查HTTP标头是否存在。
https://stackoverflow.com/questions/27504256
复制相似问题