我正在尝试在反向代理后面配置两个基于 Node 的 Angular.js 应用程序(尝试了 Apache 和 Nginx 的 mod-proxy)。让我解释一下:
应用程序 A 在 localhost:3000
上运行
应用程序 B 在 localhost:3001
上运行
应用程序 A 应在 http://myServer/appA
上从外部可见
应用程序 B 应在 http://myServer/appB
问题是,常规资源(index.html、图像、js 文件)已加载,但使用 Angular ngResource-Service 调用 REST-API 不起作用。
使用 Fiddler 的一些调查指出,为了加载常规资源,使用了正确的 URL(例如 http://myServer/appA/image.png
),但对于 REST 调用,URL 缺少/appA 路径(例如,调用 http://myServer/data
而不是 http://myServer/appA/data
)。
有人知道我该如何解决这个问题吗?是否可以在 Angular ngResurce-Service 上进行配置。或者它是一个服务器端问题,必须通过对 proxy-html 或 mod-proxy 进行适当的设置来解决。
非常感谢您的帮助。
最佳答案
我们解决了这个问题:这是我们自己在使用 Angular 资源服务时出现的错误。我们在 REST 调用的路径中包含了一个前导/,例如/机器。有了这个前导/,所有 URL 都会被绝对解释,例如调用 http://myServer/machines
而不是 http://myServer/appA/machines
。
关于node.js - 来自 Angular ngResource-Service 的 REST-API 调用未由反向代理转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23367770/