CORS问题是AngularJS应用程序独有的吗?

时间:2016-06-09 10:05:49

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

我正在使用AngularJS构建一个客户端应用程序,该应用程序向使用ASP.NET构建的RESTful Web API发出请求。我已经有了#34; No Access-Control-Allow-Origin标头存在"错误,我理解,为了解决这个问题,您需要在我的Web API中允许使用CORS。

然而,我不明白为什么我只在AngularJS应用程序中遇到此问题。我在ASP.NET MVC中构建了许多客户端应用程序,它们使用ASP.NET Web API中的服务,我从未遇到过这个问题。有人可以解释为什么会发生这种情况吗?

3 个答案:

答案 0 :(得分:1)

它不是AngularJS独有的。对于所有进入与其所在域不同的域名的javascript调用,它都是这样的。

不同之处可能是您从MVC项目的服务器调用了Web服务。

虽然从前端(浏览器)调用API,但浏览器内置了安全性,不允许您对其他域进行调用。服务器没有与浏览器相同的内置安全性。

答案 1 :(得分:1)

CORS是一种基于浏览器的技术,并不仅限于Angular。 Angular利用XMLHttpRequest来发出请求,这是使用同源策略。您的其他客户端应用程序正在运行的原因是它们不是基于浏览器的。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

答案 2 :(得分:1)

没有。它不是Angular独有的。

当您的后端API和前端SPA具有以下不同之一时,您将遇到CORS问题:

  • 主机名:api.example.comwww.example.com
  • 端口:example.comexample.com:8080
  • 协议:https://example.comhttp://example.com