2015-12-14 128 views
0

在我的C#的Web API已启用了CORS即角JS一个Cors否“访问控制允许来源”标头出现在所请求的资源错误

[EnableCors(origins: "*", headers: "*", methods: "*")] 

,然后在我的角度JS的网站我调用后API作为例如

authService.login = function (credentials) { 
       return $http 
        .post(WEB_CONFIG.login, credentials) 
        .then(function (res) { 
         Session.create(res.data.Email, res.data.Roles,res.data.Username); 
         return res.data.user; 
        }); 
      }; 

角站点正在从本地主机请求:9000,和API位于本地主机

得到错误

XMLHttpRequest无法加载http://localhost/mysite/api/user/login。对预检请求的响应不会通过访问控制检查:请求的资源上不存在“访问控制 - 允许来源”标头。因此不允许访问原产地'http://localhost:9000'。

为什么在启用Cors时出现此错误?

+0

您是否在后端的post和options请求上启用了cors?或者只是在请求后? (mentiosn预检请求是在真正的后请求之前发送的选项请求)。我发现你有'方法:'*'',但是如果它被添加到post-only资源中,它不会有帮助。 – Etse

+0

你能举个例子吗?现在我有config.EnableCors();在我的WebApiConfig.cs中。它应该在其他地方启用吗? – StevieB

+0

我不是C#人员,但这似乎是一个驻留在后端的问题。由于某些原因,cors未能正常启用。我们不得不看更多的后端代码来解释原因。 – Etse

回答

0

试试这个配置。

cors: 
    allowed-origins: "*" 
    allowed-methods: GET, PUT, POST, DELETE, OPTIONS 
    allowed-headers: "*" 
    exposed-headers: 
    allow-credentials: true 
    max-age: 1800 
相关问题