javascript - apache mod_proxy,为跨域ajax调用配置ProxyPass和ProxyPassReverse

标签 javascript ajax apache cross-domain

我正在创建一个 html5 - JavaScript 应用程序(用于移动设备,使用 PhoneGap)。我必须与 REST 服务交互。

服务现在运行在 "http://localhost:8080/backend/mvc/"

我正在 wamp 服务器 (apache2) 上开发我的应用程序 (http://localhost/stage/) 我使用的是 Chrome 浏览器。

当执行 ajax 调用时,浏览器响应:XMLHttpRequest 无法加载 http://localhost:8080/backend/mvc/event。 Access-Control-Allow-Origin 不允许来源 http://localhost。

所以我找到了几种方法来规避这个跨域ajax调用问题:

1) 启动 chrome chrome.exe --disable-web-security => 没有区别

2) 使用 mod_proxy 配置 apache 以重定向流量。

我在 httpd.conf 中启用了:

proxy_module
proxy_connect_module
proxy_http_module

我在 www 根目录下放了一个 .htaccess 文件,内容如下:

# start mod_rewrite
RewriteEngine On

ProxyRequests off
<Proxy>
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass /EMBackend/ http://localhost:8080/backend/mvc/
ProxyPassReverse /EMBackend/ http://localhost:8080/backend/mvc/
RewriteRule ^/EMBackend/(.*)$ /backend/mvc/$1 [R]

我重新启动了所有服务(apache、php、..)

导致错误500

apache 错误日志:[Tue Oct 18 14:30:11 2011] [alert] [client 127.0.0.1] C:/wamp/www/.htaccess: ProxyRequests not allowed here/p>

关于如何解决这个问题的任何线索?

最佳答案

我找到了一个可行的解决方案:

启用:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

将其放在配置的主要部分(或所需的虚拟主机,如果使用 Apache 虚拟主机):

ProxyRequests Off
ProxyPreserveHost On

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass /EMBackend http://localhost:8080/backend/mvc
ProxyPassReverse /EMBackend http://localhost:8080/backend/mvc
<Location /EMBackend>
    Order allow,deny
    Allow from all
</Location>

所以我想我不能把它放在 .htaccess 中,或者我必须设置 ProxyPreserveHost On。我将 Include conf/extra/ 放入 httpd.conf 文件并创建了 httpd-proxy.conf 文件并将上面的脚本放入其中.重新启动 apache,它正在工作!

关于javascript - apache mod_proxy,为跨域ajax调用配置ProxyPass和ProxyPassReverse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7807600/

相关文章:

python - 在 Django 提供的 IFrame 中显示 PDF 时,IE 8 崩溃

javascript - Node Webkit - 另存为对话框,在 "Save as Type"字段上有多个选项

javascript - 创建元素的原型(prototype)函数并使用在加载时而不是单击时调用的继承

javascript - 当我访问 JSON 数组中的特定值时

javascript - 在这种情况下,v-if 的另一种解决方案是什么?

java - 如何在ajax成功调用中读取解析的json数据

regex - 通过 htaccess 将部分添加到 URL

PHP tmux 和 screen 行为不正确(没有启动,没有新 session ,没有新窗口)

php - 由于ajax调用,javascript倒计时滞后

php - 如何在javascript中调用$_SESSION