apache - 配置Apache以避免使用Dart进行跨域调用

标签 apache apache2 dart mod-proxy dart-editor

我正在尝试使用mod_proxy配置Apache以在本地开发Dart Web应用程序,但似乎无法正确设置它。

在我的httpd.conf中,启用了以下几行:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
Include conf/extra/httpd-vhosts.conf

在httpd-vhosts.conf中,我尝试设置所需的内容,但是它似乎没有用。我有一个Spring Web应用程序,该应用程序是通过Jetty从Eclipse运行的。这样就在http://localhost:8080上。然后,我从Dart编辑器运行Dart,它最终显示在127.0.0.1:3030上(尽管诸如“login”之类的请求的总路径是:http://127.0.0.1:3030/C:/Users/CorayThan/dart/BlightedRealmUi/web/out/login)。

无论哪种方式,我都试图让apache将请求从127.0.0.1:3030重定向到localhost:8080。我试图在httpd-vhosts.conf中这样做:
<VirtualHost *:80>
    ServerAdmin test@localhost
    ServerName 127.0.0.1:3030

    ProxyPass / http://localhost:8080
    ProxyPassReverse / http://localhost:8080

    ErrorLog "logs/proxy-error.log"
</VirtualHost>

但这似乎根本没有用。有人可以建议我如何解决它,或者首先建议一种更好的方法吗? (我不想使用CORS或Jsonp,我只是想要一个易于跨浏览器兼容的hack进行开发。)

最佳答案

我不确定您是否可以执行此操作,您的VHost必须监听3030,而不是上面的80,才能执行代理功能,而Dart使用此端口则无法执行,以下是Vhost的摘录我用来从Dartium代理到CouchDb服务器的文件,以允许基于浏览器的CORSDB客户端使用CORS进行访问,但这可能不是您想要的:

<VirtualHost *:8080>
    <Proxy http://141.196.22.210:5984>
        Order deny,allow
        Allow from all 
    </Proxy> 
    RewriteEngine on
    RewriteCond %{REQUEST_METHOD} ^OPTIONS
    Header set Access-Control-Allow-Origin http://127.0.0.1:3030
    Header set Access-Control-Allow-Credentials true
    Header set Access-Control-Allow-Headers Content-Type
    Header merge Access-Control-Allow-Headers Authorization
    Header merge Access-Control-Allow-Headers Destination
    Header set Access-Control-Allow-Methods GET
    Header merge Access-Control-Allow-Methods POST
    Header merge Access-Control-Allow-Methods PUT 
    Header merge Access-Control-Allow-Methods OPTIONS
    Header merge Access-Control-Allow-Methods DELETE 
    Header merge Access-Control-Allow-Methods HEAD 
    Header merge Access-Control-Allow-Methods COPY
    Header set Access-Control-Max-Age 3600 

    ProxyRequests off
    ProxyPreserveHost Off
    KeepAlive Off

    ProxyPass / http://141.196.22.210:5984/ nocanon
    ProxyPassReverse / http://141.196.22.210:5984/
</VirtualHost>

因此,当我的客户端应用程序登录到Couch时,它将使用141.196.22.210:8080。

关于apache - 配置Apache以避免使用Dart进行跨域调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18247526/

相关文章:

java - 在Windows 8.1上安装maven 3.3.1时出错

ssl - 帮助解决 SSL 漏洞(混合内容)?

apache2 - 如何安装和使用 Apache Velocity?

flutter - Flutter BottomNavigationBar在顶部发光吗?

regex - .htaccess 将具有特定路径的 URL 重定向到 404 并排除一些具有相同路径的 URL 作为异常

apache - htaccess 无提示重定向到子目录 : Subdirectory showing when no trailing '/'

php - 如何在PHP错误上设置Apache HTTP 503错误代码而不是HTTP 500

dart - 如何将背景图像添加到 flutter 应用程序?

flutter - 无法创建 flutter 项目

javascript - 适用于 Windows 的 Apache/XAMPP 错误地将文件视为可执行文件