我正在使用AngularJS构建一个客户端应用程序,该应用程序向使用ASP.NET构建的RESTful Web API发出请求。我已经有了#34; No Access-Control-Allow-Origin标头存在"错误,我理解,为了解决这个问题,您需要在我的Web API中允许使用CORS。
然而,我不明白为什么我只在AngularJS应用程序中遇到此问题。我在ASP.NET MVC中构建了许多客户端应用程序,它们使用ASP.NET Web API中的服务,我从未遇到过这个问题。有人可以解释为什么会发生这种情况吗?
答案 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.com
和www.example.com
example.com
和example.com:8080
https://example.com
和http://example.com