使用grunt serve和apache来防止跨域错误

时间:2014-07-19 13:52:46

标签: apache gruntjs yeoman

好吧,由于我对php-angular应用程序开发的跨域限制,我一直在努力开发。

我正在使用yeoman来构建我的应用程序,因此它有一个grunt服务器任务,它在端口9001打开一个http服务器

现在我已经在php中创建了一个REST - 就像我的后端一样为我的angularjs应用程序提供服务。

在开发过程中,我总是创建一个虚拟数据,而不是使用我制作的api因为我不能将这两个单独的东西放在一起,然后在我完成构建前端之后,我将build它并复制到api的文件夹,所以我现在可以测试它一起工作,这对开发来说真的不那么高效和快速。

现在我遇到了这个article

它教会了如何让这两个人一起工作,但我想我没理解,也没能做好。

以下是我在apache中site-available的配置。

<VirtualHost *:80>
  ServerName foo.dev
  ServerALias www.foo.dev
  DocumentRoot /var/www/html/foo
  ProxyPass /api/ http://foo.dev/api/ retry=0 timeout=30 
  ProxyPass / http://localhost:9001/ retry=0 timeout=30
  <Directory "/var/www/html/foo">
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

现在发生了什么,http://foo.dev现在有效,就像我在localhost:9001中看到的那样,但它无法访问http://foo.dev/api

我的设置有什么问题。谢谢!

1 个答案:

答案 0 :(得分:0)

如果您使用PHP创建了后端,则需要在PHP的根目录中创建一个.htaccess文件。

设置:

<ifModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
    Header always set Access-Control-Allow-Methods "POST, GET, PUT, DELETE, OPTIONS"
    Header always set Access-Control-Allow-Headers "X-Requested-With, Content-Type"
</ifModule>