Wordpress 和 Chromebook 的 CORS 问题
CORS Issue with Wordpress and Chromebook
我正在我的主要开发机器上开发一个网站,有时我喜欢在办公桌以外的其他地方和我的 Chromebook 上编写代码,但仍然在同一个网络上。对于其他项目,我启用了 VirtualHosts 插件来访问我正在处理的内容。我目前使用的是 "Virtual Hosts" (https://chrome.google.com/webstore/detail/virtual-hosts/fbkigokjancnolojmhcgcfhgeeljolkh?hl=en)。这可以正常工作,因为使用 Laravel 构建的项目具有相对路径。
我面临的问题是,当使用此方法玩转 Wordpress 时,由于 WP 提供资源的绝对路径,我在仪表板中收到许多 CORS 警告,例如 AJAX电话。上面的插件重写了输入地址栏的请求并将其映射到 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 失败并阻止我与仪表板正确交互。上面的错误是由于试图保存 post.
我已经尝试将 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 运行。如果有配置的解决方案,我也可以访问我的路由器。
当 CORS 相关时,浏览器将在发送第一个 POST.
之前发送一个 OPTIONS 请求(预检)
Response to preflight request doesn't pass access control check:
Redirect is not allowed for a preflight request.
Apache 很可能发送重定向,但除非您检查 Apache 的日志,否则无法判断是否或为什么。
我找到的最简单的解决方案是将 Wordpress 安装的站点地址修改为服务器 IP 地址的地址。显然这应该只用于开发,但它解决了我的问题。
我正在我的主要开发机器上开发一个网站,有时我喜欢在办公桌以外的其他地方和我的 Chromebook 上编写代码,但仍然在同一个网络上。对于其他项目,我启用了 VirtualHosts 插件来访问我正在处理的内容。我目前使用的是 "Virtual Hosts" (https://chrome.google.com/webstore/detail/virtual-hosts/fbkigokjancnolojmhcgcfhgeeljolkh?hl=en)。这可以正常工作,因为使用 Laravel 构建的项目具有相对路径。
我面临的问题是,当使用此方法玩转 Wordpress 时,由于 WP 提供资源的绝对路径,我在仪表板中收到许多 CORS 警告,例如 AJAX电话。上面的插件重写了输入地址栏的请求并将其映射到 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 失败并阻止我与仪表板正确交互。上面的错误是由于试图保存 post.
我已经尝试将 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 运行。如果有配置的解决方案,我也可以访问我的路由器。
当 CORS 相关时,浏览器将在发送第一个 POST.
之前发送一个 OPTIONS 请求(预检)Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.
Apache 很可能发送重定向,但除非您检查 Apache 的日志,否则无法判断是否或为什么。
我找到的最简单的解决方案是将 Wordpress 安装的站点地址修改为服务器 IP 地址的地址。显然这应该只用于开发,但它解决了我的问题。