相同的域和协议,但“被CORS策略阻止:不存在“访问控制允许来源”

时间:2018-12-05 12:27:07

标签: ajax apache cors xmlhttprequest

在我的生产服务器上,出现了一个奇怪的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 issuethat issue,但是这两个问题都可以通过禁用策略(对生产来说确实很糟糕)来解决,或者检查请求和答复url是否都匹配相同的协议。

我都检查了。我没主意。 有没有人提示下一个地方?


如果以任何方式相关,那么我的生产服务器位于LAMP Web主机上。我没有访问https.conf的权限,但是在我的.htaccess文件中有此权限:

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

1 个答案:

答案 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