我正在我的网站上使用内容安全政策和谷歌广告 www.iusefaith.com。我的广告没有显示,我在火狐检查器中收到的错误消息是
请求访问 Cookie 或存储 "https://adservice.google.com/adsid/integrator.js?domain=www.iusefaith.com" 被阻止,因为它来自跟踪器并且内容阻止是 启用。
使用铬,我收到以下错误
设置了与跨站点资源 at 关联的 Cookie,但没有SameSite
属性。Chrome 的未来版本将仅在设置了SameSite=None
和Secure
的情况下提供具有跨站点请求的 cookie。您可以在应用程序>存储>Cookie 下的开发人员工具中查看 Cookie,并在和
同时,我已允许谷歌在我的内容安全政策中
<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline' 'unsafe-eval' https://code.jquery.com https://ajax.aspnetcdn.com *.reftagger.com *.fastly.net *.facebook.com *.youtube.com *.googlesyndication.com *.googleapis.com *.google-analytics.com *.googletagservices.com *.google.com.gh *.google.com *.doubleclick.net *.vimeo.com *.cloudflare.com *.cloudinary.com *.bootstrapcdn.com; img-src * data:; frame-src *; ">
因此,我只在我的主页上获得谷歌广告,而不是在其他页面上。如何修复它并使谷歌广告感知在没有请求访问cookie或存储的情况下显示所有页面?
这在 Mozilla 文档中有明确的概述:
访问 Cookie 或存储的请求被阻止,因为浏览器 将其识别为来自跟踪器,并且内容阻止是 启用。
可以通过以下方式更改或删除权限:
Going to Preferences > Content Blocking and either adding an exception with the Manage Exceptions… button choosing the Custom Content Blocking and unchecking the Tracker checkbox
如果被阻止的资源不需要身份验证,则可以修复 通过将 CrossOrigin="匿名" 属性添加到 相关元素。
有关crossorigin
属性的详细信息,请参阅此页面:
跨源属性,在
<audio>
、<img>
、<link>
上有效<script>
和<video>
元素,为 CORS 提供支持,定义 元素如何处理跨源请求,从而启用 配置元素提取数据的 CORS 请求。 根据元素,属性可以是 CORS 设置 属性。媒体元素上的跨源内容属性是 CORS 设置 属性。
这些属性是枚举的,并且具有以下可能 值:
匿名
请求使用 CORS 标头和凭据标志设置为"同源"。不会通过 Cookie 交换用户凭据, 客户端 SSL 证书或 HTTP 身份验证,除非 目的地是相同的原点。
使用凭据
请求使用 CORS 标头,凭据标志设置为"包含",并且始终包含用户凭据。
">
将属性名称设置为空值(如 crossorigin 或 crossorigin="(与匿名相同。
无效的关键字和空字符串将作为 匿名关键字。
默认情况下(即,当未指定属性时(,CORS 不是 根本用过。用户代理不会请求完整权限 访问资源,如果是跨源请求, 将根据元素的类型应用某些限制 关心: