【发布时间】:2019-07-14 15:31:00
【问题描述】:
我正在我的主要开发机器上开发一个网站,有时我喜欢在远离办公桌的其他地方和我的 Chromebook 上编写代码,但仍然在同一个网络上。对于其他项目,我启用了一个 VirtualHosts 插件来访问我正在处理的内容。我正在使用的当前一个简单地称为“虚拟主机”(https://chrome.google.com/webstore/detail/virtual-hosts/fbkigokjancnolojmhcgcfhgeeljolkh?hl=en)。这很好用,因为使用 Laravel 构建的项目具有相对路径。
我面临的问题是,当使用这种方法来玩 Wordpress 时,由于 WP 提供了 AJAX 调用等资源的绝对路径,我在仪表板中收到了许多 CORS 警告。上面的插件重写了输入到地址栏中的请求,并将其映射到一个 IP 地址。但是,在编辑页面时,我收到如下错误:
Access to fetch at 'http://dev.somedomain.com/wp-
json/wp/v2/pages/2/autosaves?_locale=user' from origin '
http://192.168.0.14' has been blocked by CORS policy: Response to
preflight request doesn't pass access control check: Redirect is not
allowed for a preflight request.
这些请求没有被解析,CORS 失败并阻止我与仪表板正确交互。上述错误是由于尝试保存帖子而导致的。
我尝试将Header set Access-Control-Allow-Origin "*" 添加到我的 .htaccess 中,结果是:
Header set Access-Control-Allow-Origin "*"
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
但错误没有改变。
服务器是在 Ubuntu 16.04 上运行的 Apache。如果有解决方案配置它,我也可以访问我的路由器。
【问题讨论】:
-
这个问题已被标记为重复,但链接的问题没有提到使用欺骗的 VirtualHost,这是问题的症结所在。我找到了解决方案,但在问题被标记为重复时无法提供答案。副本上给出的解决方案并不能解决这个问题。
标签: wordpress apache cors virtualhost chromebook