api - 为什么从本地主机向本地主机发出请求时会启动同源策略?

标签 api google-chrome angularjs same-origin-policy yeoman

我将后端 API 作为一个单独的项目,与使用它的前端 HTML5 应用程序分开。我正在使用 Yeoman 进行前端开发。 Yeoman 在 localhost:3501 上运行,后端在 localhost:3000 上运行。当我从浏览器发出 API 请求时(使用 AngularJS 的 $http),我遇到了同源策略:

XMLHttpRequest cannot load http://localhost:3000/venues. Origin http://localhost:3501 is not allowed by Access-Control-Allow-Origin.

据我所知,同源策略仅在跨不同域发出请求时才应启动。当我们从本地主机到本地主机(尽管是不同的端口)发出请求时,为什么它会发出提示声?

我怎样才能完成这项工作,这会在生产中造成问题吗?

最佳答案

这些端口也计算跨域请求,因此 http://localhost:3000http://localhost:35012 个不同的域(从浏览器的 Angular 来看)。

如果您需要两个应用程序(客户端和后端)在不同端口上运行,请考虑使用 http://enable-cors.org/

关于api - 为什么从本地主机向本地主机发出请求时会启动同源策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14262775/

相关文章:

ruby-on-rails - 使用cURL进行设备身份验证

ios - 我应该为 ios 客户端启用 cors 吗?

javascript - 如何将 Google Chrome 扩展移植到 Firefox?

angularjs - 使用 Protractor 运行 e2e 测试用例时显示光标移动

api - 是否可以在 Google Analytics 查询过滤器中比较 2 个维度?

ios - Alamofire POST 错误 token - Swift

javascript - 验证指令代码在 ng-repeat 中的每个项目上执行

javascript - 如何删除 Angular 中的#?

javascript - 通过 http 保护 POSTED 数据的最佳方法?

c# - Google Chrome 的 ASP.NET MVC Session.IsNewSession 问题