我将后端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.
AFAIK,只有在跨不同域提出请求时才应启动相同的原始政策。当我们从localhost请求localhost(虽然是不同的端口)时,为什么会抱怨?
我如何才能完成这项工作?这会导致生产中的问题吗?
答案 0 :(得分:13)
端口也会计入跨域请求,因此http://localhost:3000
和http://localhost:3501
2个不同的域(从浏览器的角度来看)。
如果您需要在不同端口上运行这两个应用程序(客户端和后端),请考虑使用http://enable-cors.org/
答案 1 :(得分:3)