【发布时间】:2017-01-13 23:32:42
【问题描述】:
我的 .htaccess 文件中有以下内容:
标头集 Access-Control-Allow-Origin: "*"
完美运行!但这是一种糟糕的安全做法。
当我将其更改为:
标头集 Access-Control-Allow-Origin: "http://example.com"
我收到以下错误:
跨域请求被阻止:同源策略不允许读取位于http://example.com/oc/catalog/view/javascript/font-awesome/fonts/fontawesome-webfont.woff2?v=4.4.0 的远程资源。 (原因:CORS 标头“Access-Control-Allow-Origin”与“http://example.com”不匹配)。
我该如何处理?
【问题讨论】:
-
错误信息没有这样说。如果是这样,那么您已经为对 same origin 的请求生成了跨源错误。您似乎已通过将每个主机名替换为
example.com来清理 URL,并在此过程中隐藏了问题。 -
我没有对url进行任何更改,只是我将网站名称更改为example。如果您希望我列出未经编辑的信息,请告诉我。请注意,我通过 www.example.com 而不是 example.com 访问网站时收到此错误
-
是的,列出未编辑的信息。目前,该问题声称您正在从
http://example.com/向http://example.com/发出请求,但由于不是来自http://example.com/,因此被阻止。 -
我正在访问网站 www.arvindint.com/oc。在 htaccess 中,我输入了 -
Header set Access-Control-Allow-Origin: "http://arvindint.com"。我得到的错误是 -Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at arvindint.com/oc/catalog/view/javascript/font-awesome/fonts/…. (Reason: CORS header 'Access-Control-Allow-Origin' does not match 'arvindint.com').Stackoverflow 似乎正在删除 cmets 中链接之前的“http://”。 -
您(在 Chrome 中)收到的实际错误消息是:
Font from origin 'http://arvindint.com' has been blocked from loading by Cross-Origin Resource Sharing policy: The 'Access-Control-Allow-Origin' header has a value 'http://arvindint.com' that is not equal to the supplied origin. Origin 'http://www.arvindint.com' is therefore not allowed access.正如我的回答所说,http://arvindint.com与http://www.arvindint.com不同。其中有一个额外的www.。