gpt4 book ai didi

php - 本地主机 NodeJS 和 PHP 在同一域中

转载 作者:太空宇宙 更新时间:2023-11-03 22:14:44 24 4
gpt4 key购买 nike

我正在 www.foo.com 上使用 NodeJS 本地开发一个项目,并希望在上调用 PHP 应用程序subdomain.foo.com.

它可以工作,但它被解释为 CROSS-ORIGIN,因此它发送 OPTIONS 请求,并且我无法在网络浏览器开发工具中从 PHP 中获取抛出的错误。

我的主机

127.0.0.1    foo.com
127.0.0.1 subdomain.foo.com

Apache

// 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 "*"

<Directory> PHP 站点配置的部分。这将允许来自任何地方的跨站点 XHR 请求。

或者你可以细化并说:

Header set Access-Control-Allow-Origin "foo.com"

如果您只需要来自主域的请求

关于php - 本地主机 NodeJS 和 PHP 在同一域中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32735630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com