ng-src 403 没有图像但路径正确

Posted

技术标签:

【中文标题】ng-src 403 没有图像但路径正确【英文标题】:ng-src 403 no image but correct path 【发布时间】:2015-11-13 14:16:34 【问题描述】:

查看了一些相关的帖子:

Why am I getting a 404 error with ng-src even though image is appearing?

AngularJS ng-src path to image

Understanding AngularJS ng-src

Conditionally change img src based on model data

但没有一个具有完全相同的症状。

这行代码,

<img ng-src="movie.Poster" >

其中movie 是JSON 而movie.Poster 是一个url 的字符串,似乎是这个错误的根源:

GET http://ia.media-imdb.com/images/M/MV5BMTk3OTIzODUyOV5BMl5BanBnXkFtZTYwNjgxNjA5._V1_SX300.jpg 403 (Forbidden)

因为错误中图片url好且完整,所以url字符串属性movie.Poster好像已经及时传递给了ng-src ok/in。但是,许多看似相关的帖子都强调 JS 的异步性可能是原因(在这种情况下,movie.Poster 确实取决于 API 的响应)。

但是如果 url 在错误中,为什么 ng-src 在请求图像和显示任何内容时会出现问题?上面最接近我的问题的帖子能够加载图像并给出控制台错误...

也许最奇怪的是,如果我导航到图像 url(通过复制和粘贴该 url)到浏览器上的另一个选项卡,然后返回到我的应用程序并单击返回然后前进,图像加载时不会出错!

我试过ng-if="movie.Poster" 和... $scope anotherVar = movie.Poster 在控制器中然后ng-src="anotherVar"

【问题讨论】:

图片url本身好像不存在。您是否尝试将其加载到浏览器中?我的意思是网址? 是的。图片网址很好。它加载图像。正如这里所解释的:***.com/questions/22958559/… 服务器出于安全原因拒绝了请求 【参考方案1】:

好像不是角度问题,和API差不多,

403 when trying to download a remote image

403 error for loading image from http and not https

Confused about how to handle CORS OPTIONS preflight requests

所以,看来需要根据这个答案中的第一个链接帖子修改标题...

但我检查了User-Agent 是在对图像的请求中定义的,它是...甚至尝试对ng-src 中的一个网址进行硬编码,结果却是相同的 403...

我有同事用相同的 api 构建了相同的应用程序没有问题!

【讨论】:

【参考方案2】:

您的错误是 403。 这表明服务器可以到达并理解请求,但拒绝采取任何进一步的行动。状态码 403 响应是由于某种原因,Web 服务器被配置为拒绝访问客户端请求的资源。

您的图片网址可能正确,但您无权访问。

http://ia.media-imdb.com/images/M/MV5BMTk3OTIzODUyOV5BMl5BanBnXkFtZTYwNjgxNjA5._V1_SX300.jpg

【讨论】:

以上是关于ng-src 403 没有图像但路径正确的主要内容,如果未能解决你的问题,请参考以下文章

Angularjs 中的iframe 标签 ng-src 路径 报错问题 解决办法

Sitecore IconCache 图像未显示,路径不正确

403 禁止:访问图像的权限

sql查询不更新img文件路径

尽管将 AWS 静态文件路径添加到 CORS_ORIGIN_WHITELIST django-cors-headers,但出现 403 错误

angular 访问图片路径错误