在我的生产服务器上,出现了一个奇怪的CORS问题,对我来说毫无意义。
Access to XMLHttpRequest at 'https://example.org/update' from origin 'https://www.example.org' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
(example.org只是我的实际域的占位符)
我已经检查了this issue和that issue,但是这两个问题都可以通过禁用策略(对生产来说确实很糟糕)来解决,或者检查请求和答复url是否都匹配相同的协议。
我都检查了。我没主意。 有没有人提示下一个地方?
如果以任何方式相关,那么我的生产服务器位于LAMP Web主机上。我没有访问https.conf的权限,但是在我的.htaccess文件中有此权限:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
答案 0 :(得分:1)
它们不是同一域。如果未指定,则将子域视为不同的来源。您要么必须将这些起源写入cors策略,要么使用重写条件和规则。
尝试一下:
RewriteCond %{HTTP_HOST} ^www\.example\.org$
RewriteRule ^/(.*)$ http://example.org/$1 [R=301,L]
这会将http://www.example.org/update
重写为http://example.org/update