我正在构建一个mvc应用程序,我正在制作一个api控制器以允许来自我的一些前端页面的ajax请求。我想限制api控制器操作只允许来自我的服务器的请求(所以人们不能从他们自己的站点调用我的api)。mvc web api只允许来自同一服务器的请求
经过一番周围搜索,我发现了许多解决方案提出了一个自定义的授权属性,这是我做:
public class LocalRequestOnlyAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase context)
{
return context.Request.IsLocal;
}
}
,然后用[LocalRequestOnly]
它正常工作在本地主机上把它扔到了我的控制器动作,但我的AWS服务器上,这是行不通的,Ajax请求回来为错误
编辑 - 详细:
我正在使用具有相对路径的主机名。所以我的ajax调用的网址是“/ api/getdata”。 我没有设置任何ajax请求标头。 我回来的错误是No 'Access-Control-Allow-Origin' header is present on the requested resource.
你有更多的信息吗?你使用IP或主机名连接? AJAX请求标头是什么样的?返回的错误是什么? – murtuza
细节增加 – blubberbo