比如说 http://m0-pub.bybutter.com/42... 这张图,用img标签是可以加载出来的。但是在地址栏直接访问会直接下载,且下载下来还是没有扩展名的。
比如说 http://m0-pub.bybutter.com/42... 这张图,用img标签是可以加载出来的。但是在地址栏直接访问会直接下载,且下载下来还是没有扩展名的。
5 回答1.3k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
1 回答866 阅读✓ 已解决
5 回答1.1k 阅读
以 img 方式加载,浏览器会自动遵循同域策略,在 GET 请求中追加 Cookies、ETag、Cache-Control、Referer 等请求头信息,并且无论服务端返回何种数据,浏览器都会尝试以图片的方式去解析。
地址栏直接输入,浏览器则不会携带 Referer(很多反盗链技术也是基于此),并按照服务端返回的 Content-Type 响应头来尝试解析响应结果。
你这个 URL,响应头 Content-Type 是
application/octet-stream
,浏览器从响应头上无法识别这是一个图片类型的文件。如果你想要地址栏中能直接打开,应该让服务端返回正确的 MIME 类型(如
image/jpeg
、image/png
等)。看上去你这是一个阿里云 OSS 的文件地址,那么你需要到 OSS 控制台或使用 API 来修改对应文件的 MIME 元数据属性;并在之后上传文件时就指明正确的文件类型。