我有一个启用了CORS身份验证的Web API 2应用程序。本地我在端口80上运行两个站点,SPA站点和Web API,使用不同的主机头。一切正常。但是,我正在尝试在没有域的计算机上进行测试,因此我必须为这两个站点使用具有不同端口的IP地址。无论我做什么,Web API都会在请求的资源上提供旧的“No'Access-Control-Allow-Origin”标头。因此,“http://xxx.xxx.xxx.xxx:8090”原因不允许访问“。我的CORS配置如下:
var cors = new EnableCorsAttribute(
origins: "*",
headers: "*",
methods: "*");
config.EnableCors(cors);
当API在真实域上而不是在IP地址上时,是否只能运行Web API 2 CORS?这似乎是一个极端的限制。
不确定是否重要,但在本地我正在运行IIS 7.5,但我的测试机器是IIS 7.
非常感谢任何帮助。
答案 0 :(得分:2)
原来它 IIS特定。只要我将API放在运行IIS 7.5的计算机上,它就能完美运行。欢呼声。
答案 1 :(得分:0)
如果您在没有成功的情况下尝试我的评论,请将以下内容添加到public class X extends VaadinServlet {
// different class members
@Override
protected void servletInitialized() throws ServletException {
super.servletInitialized();
getService().addSessionDestroyListener(new SynchronizerSessionDestroyListener());
}
}
文件(Web.config
标记内):
<system.webServer>
希望这有帮助!