我正在开发一个webapp和静态文件,我简单地在localhost
使用Apache,而后端是在localhost
上运行的couchdb实例localhost:5984
。
webapp始终与后端的文件进行交互。 所以当试图在apache上testing所有文件请求到localhost:5984
时发生了什么事情,因为跨域策略而被阻止,所以唯一的办法就是启动浏览器,通过设置标志来忽略它。
但是,当我试图在手机上testing应用程序时,例如ipad或iphone,我又陷入了困境。
目前我在我的.htaccess
文件中有这个。
RewriteEngine on # these are 302 http redirections instead of serving as a proxy RewriteRule auth http://localhost:5984/auth [L] RewriteRule db/([\s\S]+) http://localhost:5984/db/$1 [L] RewriteRule send/([\s\S]+) http://localhost:5984/send/$1 [L] # these are just redirections to static files and work great RewriteRule ^([az/.]+) _attachments/$1 [L] RewriteRule ^$ _attachments/ [L]
正如你所看到的,我不知道如何处理Apacheconfiguration不幸的。 但是现在发生的事情是,对于这些规则中的一些,apache只是简单地redirect页面,而不是将其作为代理服务器提供,从而导致跨域问题。
同样,在第一个auth
规则中,我发送POST和DELETE请求作为redirect而不是代理,它不会传递通过POST的数据。
所以我想实现的是激活某种特性(如果存在的话),这将使apache简单地渲染页面,而不是redirect到本地域。 (我把它命名为代理,但也许这不是正确的术语,对于术语错误感到抱歉)。
是否有可能实现这样的行动? 提前致谢
看看这些链接/选项:
[P]
标志:
mod_proxy ( 可能 – 但我认为#1应该是足够的,如果它在同一台服务器上):