我有一个前端 Web 应用程序,它在服务器上使用 nodejs,在客户端使用 angularjs,在端口 5000 上本地运行。客户端代码需要向也在本地运行但在 IIS 6.2 中托管的不同端口上的单独 Web API 服务发出 ajax 请求. 这使它成为一个跨域请求,浏览器正试图为此发出预检请求。但是,预检失败并调用了 ajax 错误处理程序,响应的状态代码为 -1,Chrome 控制台显示预检检查失败,可能是Response to preflight request 的标准错误消息未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。来源 ' https://localhost:5000' 因此不允许访问。响应的 HTTP 状态代码为 500。
据我所知,我在我的 Web API 服务中启用了 CORS。这是我的 Application_Start 方法的开始:
var corsAttr = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(corsAttr);
config.MapHttpAttributeRoutes();
// etc...
这个确切的设置在我同事的机器上运行良好,所以我的机器特别有问题。我被难住了,对可能发生的事情有什么想法吗?我猜有些东西只是在某个地方配置错误。