好吧,由于我对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
我的设置有什么问题。谢谢!
答案 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>