【发布时间】:2017-07-20 19:19:38
【问题描述】:
我正在构建一个 mvc 应用程序,并且我正在制作一个 api 控制器以允许来自我的一些前端页面的 ajax 请求。我想将 api 控制器操作限制为只允许来自我的服务器的请求(这样人们就不能从他们自己的站点调用我的 api)。
经过一番搜索,我发现了许多提出自定义授权属性的解决方案,我做了:
public class LocalRequestOnlyAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase context)
{
return context.Request.IsLocal;
}
}
然后用[LocalRequestOnly]将它放到我的控制器操作上
它在 localhost 上工作正常,但在我的 aws 服务器上,它不起作用,ajax 请求作为错误返回
编辑 - 详细信息:
我正在使用带有相对路径的主机名。所以我的 ajax 调用 url 是“/api/getdata”。
我没有设置任何 ajax 请求标头。
我回来的错误是No 'Access-Control-Allow-Origin' header is present on the requested resource.
【问题讨论】:
-
您有更多信息吗?你是用ip还是主机名连接? AJAX 请求标头是什么样的?返回的错误是什么?
-
添加细节
标签: api asp.net-web-api asp.net-mvc-5