1

当我尝试instagram在我们的 Web 应用程序上显示图像时,我收到此错误:

The resource at “https://scontent-dus1-1.cdninstagram.com/v/t51.2885-19/s150x150
/269430179_619307746060977_8863061929784384401_n.jpg?_nc_ht=scontent-dus1-1.cdninstagram.com&
_nc_cat=109&_nc_ohc=B7qUhQC8GZkAX9zaHp6&edm=APwHDrQBAAAA&ccb=7-4&
oh=00_AT8PPmyxQt8DqIAf8z4oKqY1VKWSX0Gh04M_pcVFDltIHQ&oe=61D10099&_nc_sid=1c538d” 
was blocked due to its Cross-Origin-Resource-Policy header (or lack thereof). 
See https://developer.mozilla.org/docs/Web/HTTP/Cross-Origin_Resource_Policy_(CORP)#

html标签:

<img 
   src="https://scontent-dus1-1.cdninstagram.com/v/t51.2885-19/s150x150/269430179_619307746060977_8863061929784384401_n.jpg?_nc_ht=scontent-dus1-1.cdninstagram.com&_nc_cat=109&_nc_ohc=B7qUhQC8GZkAX9zaHp6&edm=APwHDrQBAAAA&ccb=7-4&oh=00_AT8PPmyxQt8DqIAf8z4oKqY1VKWSX0Gh04M_pcVFDltIHQ&oe=61D10099&_nc_sid=1c538d" 
   crossorigin="anonymous" alt="">

实施和设置后Laravel Cors我再次收到错误,我的Laravel Cors配置是:

    'paths' => ['api/*', 'sanctum/csrf-cookie'],
    'allowed_methods' => ['*'],
    'allowed_origins' => ['*'],
    'allowed_origins_patterns' => [],
    'allowed_headers' => ['*'],
    'exposed_headers' => [],
    'max_age' => 0,
    'supports_credentials' => false,

我们也在apache2本地使用网络服务器

4

1 回答 1

0

错误信息非常清楚。您是否尝试查找跨域资源策略

跨域资源策略是由Cross-Origin-Resource-PolicyHTTP 标头设置的策略,它允许网站和应用程序选择保护免受来自其他来源的某些请求(例如使用 和 等元素发出的请求<script><img>,以减轻投机性旁道攻击,例如 Spectre ,以及跨站点脚本包含攻击。

向相关资源发送 GET 请求会返回包含以下Cross-Origin-Resource-Policy标头的响应:

Cross-Origin-Resource-Policy: same-origin

因此,支持的浏览器会阻止对相关图像的非 Cors 跨域请求。它只能从同一来源加载,即https://scontent-dus1-1.cdninstagram.com. 在您的服务器上设置 CORS 将无济于事。

一种解决方案是从您控制的域中提供图像的副本——假设您在法律上被允许这样做。

于 2021-12-28T08:52:48.830 回答