WordPress和Chromebook的CORS问题

问题描述 投票:0回答:2

我正在我的主要开发机器上开发一个站点,有时我喜欢在我的办公桌和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。如果有配置解决方案,我也可以访问我的路由器。

wordpress apache cors virtualhost chromebook
2个回答
0
投票

当CORS相关时,浏览器将在发送第一个POST之前发送OPTIONS请求(预检)。

对预检请求的响应未通过访问控制检查:预检请求不允许重定向。

Apache最有可能发送重定向,但除非你检查apache的日志,否则无法判断是否或为什么。


0
投票

我发现最简单的解决方案是将Wordpress安装的站点地址修改为服务器IP地址。显然,这只应该用于开发,但它解决了我的问题。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.