Localhost NodeJS 和 PHP 在同一个域上
Localhost NodeJS and PHP on same domain
我正在 NodeJS 在 www.foo.com 上本地开发一个项目,想调用一个 PHP 应用在 subdomain.foo.com.
它可以工作,但它被解释为 CROSS-ORIGIN,所以它发送 OPTIONS 请求,我无法从网络浏览器开发工具中的 PHP 得到抛出的错误。
我的房东
127.0.0.1 foo.com
127.0.0.1 subdomain.foo.com
阿帕奇
// foo.com
<VirtualHost *:80>
ServerName foo.com
DocumentRoot "/path/to/my/nodejs/app"
<Location />
ProxyPass http://127.0.0.1:8080/
ProxyPassReverse http://127.0.0.1:8080/
</Location>
</VirtualHost>
// Symfony2 project on: subdomain.foo.com
<VirtualHost *:80>
ServerName subdomain.foo.com
DocumentRoot "/path/to/my/php/app"
<Directory /path/to/my/php/app>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /app_dev.php [QSA,L]
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
ErrorLog "/Applications/MAMP/logs/subdomain-foo-error.log"
CustomLog "/Applications/MAMP/logs/subdomain-foo-access.log" common
</VirtualHost>
有什么想法吗?
这是一个跨站点 XMLHttpRequests 问题,因此解决方案并不真正在 PHP 领域,而是在 Apache 本身。
您可以通过添加以下行来执行此操作:
Header set Access-Control-Allow-Origin "*"
到 PHP 站点配置的 <Directory>
部分。这将允许来自任何地方的跨站点 XHR 请求。
或者你可以细化说:
Header set Access-Control-Allow-Origin "foo.com"
如果您只想要来自主域的请求
我正在 NodeJS 在 www.foo.com 上本地开发一个项目,想调用一个 PHP 应用在 subdomain.foo.com.
它可以工作,但它被解释为 CROSS-ORIGIN,所以它发送 OPTIONS 请求,我无法从网络浏览器开发工具中的 PHP 得到抛出的错误。
我的房东
127.0.0.1 foo.com
127.0.0.1 subdomain.foo.com
阿帕奇
// foo.com
<VirtualHost *:80>
ServerName foo.com
DocumentRoot "/path/to/my/nodejs/app"
<Location />
ProxyPass http://127.0.0.1:8080/
ProxyPassReverse http://127.0.0.1:8080/
</Location>
</VirtualHost>
// Symfony2 project on: subdomain.foo.com
<VirtualHost *:80>
ServerName subdomain.foo.com
DocumentRoot "/path/to/my/php/app"
<Directory /path/to/my/php/app>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /app_dev.php [QSA,L]
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
ErrorLog "/Applications/MAMP/logs/subdomain-foo-error.log"
CustomLog "/Applications/MAMP/logs/subdomain-foo-access.log" common
</VirtualHost>
有什么想法吗?
这是一个跨站点 XMLHttpRequests 问题,因此解决方案并不真正在 PHP 领域,而是在 Apache 本身。
您可以通过添加以下行来执行此操作:
Header set Access-Control-Allow-Origin "*"
到 PHP 站点配置的 <Directory>
部分。这将允许来自任何地方的跨站点 XHR 请求。
或者你可以细化说:
Header set Access-Control-Allow-Origin "foo.com"
如果您只想要来自主域的请求