我正在创build一个html5 – JavaScript应用程序(用于移动设备,使用PhoneGap)。 我必须与REST服务进行交互。
该服务现在运行在"http://localhost:8080/backend/mvc/"
我正在开发我的应用程序在一个wamp服务器(apache2)( http://localhost/stage/ )我正在使用Chrome浏览器。
在执行ajax调用时,浏览器响应: XMLHttpRequest cannot load http://localhost:8080/backend/mvc/event. Origin http://localhost is not allowed by Access-Control-Allow-Origin. XMLHttpRequest cannot load http://localhost:8080/backend/mvc/event. Origin http://localhost is not allowed by Access-Control-Allow-Origin.
飞行前OPTIONS请求故障转移HTTPS
Nginx和CORS问题
Apache和Nodejs跨域ajax问题
同一域(本地主机)上的XHR跨域错误
访问控制允许起源不允许起源 – 如何使用一个非常简单的networking堆栈和guice启用CORS
1)启动chrome chrome.exe --disable-web-security =>没有区别
2)使用mod_proxyconfigurationApache来redirectstream量。
我在httpd.conf中启用了:
proxy_module proxy_connect_module proxy_http_module
我把一个.htaccess文件放在www的根目录下,内容如下:
# 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
任何线索如何解决这个问题?
在Apache中使用Access-Control-Allow-Origin标头处理多个域
设置Nginx允许跨域请求子域
绕过“选项请求”的authentication(所有的头都在响应中发送)
跨域jQuery AJAXfile upload
跨域分块上传使用CORS
启用:
Loadmodulee proxy_module modules/mod_proxy.so Loadmodulee 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,它的工作!
启用代理模块后,您可以简单地在httpd.conf中添加给定的行。
ProxyPreserveHost On ProxyPass /EMBackend http://localhost:8080/backend/mvc ProxyPassReverse /EMBackend http://localhost:8080/backend/mvc
只需重新启动服务器,你就完成了。
在非常现代的Apache中,通过以下方式打开代理:
a2enmod proxy; a2enmod proxy_http
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。