使用IP地址

时间:2017-08-08 05:13:30

标签: angular asp.net-web-api cors

我在浏览了stackoverlow.com中与此错误相关的许多帖子之后发布了这个问题,但我还没有找到任何解决方案。我通过以下代码从Angular 2访问ASP.net Web API。

 http.get('http://10.224.30.152:57341/api/library').subscribe(result => {
            this.library = result.json();
        });

当我执行上面的代码时,我收到以下错误:

  

XMLHttpRequest无法加载http://10.224.30.152:57341/api/library。没有   '访问控制允许来源'标题出现在请求的上   资源。起源' http://localhost:4200'因此是不允许的   访问。响应的HTTP状态代码为400。

如果我将网址更改为' localhost' 而不是IP地址,则错误会消失,我会得到所需的结果。我想了解在ASP.net Web API方面出现了什么问题,当我使用IP地址访问API时,它抛出的XMLHttpRequest无法加载错误。以下是我在Web API方面所做的工作

  1. WebAPIConfig.cs我在Register()函数中添加了以下代码行:

    public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services
    
            // Web API routes
            config.MapHttpAttributeRoutes();
            config.EnableCors();
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    
  2. 在我的控制器中,我有EnableCors属性,如

    [EnableCors("*", "*", "*")]
    public class RolesController : ApiController
        {
        ..... code ....
        }
    
  3. 编辑(8月12日)

    我观察到,如果我在IIS 7服务器上托管它,我不会收到此错误。如果我在IIS Express(Visual Studio F5运行)上测试它,我会收到此错误。但是,如果我在IIS 10(Windows 10专业版)上托管相同的Web API,我会收到相同的错误。所以我无法理解这个问题的原因。 Windows 10 IIS 10服务器中缺少什么导致此错误。错误消息也略有改变。它现在有预检'错误中的信息。

    XMLHttpRequest无法加载http://172.26.50.17:8085/api/library对预检请求的响应未通过访问控制检查:否' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://localhost:8080'因此不允许访问。响应的HTTP状态代码为500

0 个答案:

没有答案