实用教程
用 Claude Opus 5.5 修复只打开页面、不下载的商品链接
商品 PDF 或广告图片点击后只是打开页面时,先让 Claude Opus 5.5 追踪最终来源和响应头。给链接加 `download` 属性,并不能控制任意外部服务器。先区分普通跳转、服务器指定附件下载,以及获得许可后的 fetch-to-Blob 流程,再选择修改方式。


商品 PDF 或广告图片点击后只是打开页面时,先让 Claude Opus 5.5 追踪最终来源和响应头。给链接加 download 属性,并不能控制任意外部服务器。先区分普通跳转、服务器指定附件下载,以及获得许可后的 fetch-to-Blob 流程,再选择修改方式。
先选对交付机制
| 场景 | 检查对象 | 候选方案 |
|---|---|---|
| 文件与页面同源 | 链接和响应处置方式 | 普通下载链接,按目标浏览器验收 |
| 文件位于可控制的素材主机 | 最终响应头 | 用附件响应和合适文件名交付 |
| JavaScript 要读取外部文件 | CORS 许可、大小和授权 | 确有必要且获准时才 fetch 为 Blob |
MDN 链接元素说明将 download 属性限定于同源 URL 及 blob:、data: 协议。Content-Disposition 说明介绍了附件处理。允许脚本读取响应的 CORS,与服务器指定下载处置,是两个不同问题;加一个宽松的 CORS 头并不能普遍修好外链下载。
比较来源,不要只看域名眼熟
假设页面位于 https://shop.example,/files/spec.pdf 与它同源。https://assets.shop.example/spec.pdf 虽然共享父域,仍不同源。https://shop.example:8443/spec.pdf 因端口不同也不同源;https://shop.example:443/spec.pdf 则会归一化为同一 HTTPS 来源。这四组 URL 比较已在本地计算,没有执行远程下载。
记录完整重定向链。看似同源的链接可能最后跳到其他主机;过期签名链接可能返回错误文档;HTTP 200 也可能是 HTML,而不是预期 PDF。共享报告中不要保留签名查询参数。检查最终状态、内容类型、处置方式和文件身份,不要把任何保存下来的文件都当作下载成功。
限定范围的修复提示词
根据链接 HTML、页面来源、去敏后的重定向链和最终响应头检查商品下载。分别判断普通跳转、附件交付和 fetch-to-Blob。将 https://shop.example 与 /files/spec.pdf、https://assets.shop.example/spec.pdf、https://shop.example:8443/spec.pdf、https://shop.example:443/spec.pdf 比较,解释同源差异。只使用我们控制的主机和已经获得的权限提出最小修复。保留访问检查、签名过期规则、TLS 和用户主动点击。不要增加无限制代理或关闭浏览器保护。输出所需响应头、文件名行为、加载与失败状态,以及真实 PDF、过期链接、未授权响应的测试。验证文件内容,而不仅是扩展名。标明未执行的测试,隐藏私密查询令牌。
模型参考是官方 Opus 指南;这里是拟议审查流程,不是模型或浏览器下载实测。2015 年的社区问题记录了相同的 CORS 与下载混淆,但其中历史浏览器细节没有被当作当前兼容性事实。
验收真正保存的文件
如果服务器由你控制,候选响应可以是 Content-Disposition: attachment; filename="product-spec.pdf",同时提供正确内容类型和经过授权的文件。检查重定向后的最终响应。国际化文件名应按服务器支持的编码方式和浏览器实际表现验收,不要把未验证的名称直接拼进响应头。
Blob 流程可能需要在内存中持有大量数据,还必须处理请求失败、取消和对象 URL 清理。不要只是为了重命名大文件就引入它。完成提示应对应应用真正能观察到的步骤;打开标签页或收到响应头,不能证明用户已经保存了完整文件。不同浏览器设置导致行为不同时,应提供清楚的备用链接。
成功交付后如果出现重名,参考Unicode 文件名指南。在 Panelly Studio 制作广告素材后,用真实保存的文件验收自己的交付路径。这不表示 Panelly 集成 Opus,也不表示本文实测过 Panelly 的下载实现。
下载常见问题
父域相同就算同源吗?
不是。协议、主机和有效端口共同决定来源,子域名变化也可能改变来源。
附件响应头能覆盖所有用户偏好吗?
不能。浏览器和用户设置都会影响处理方式。需要验收目标客户端,并提供可用的备用方案。
找个公共代理能解决吗?
不要把受保护或带签名的素材发送给任意代理。应修复自己控制的交付端点,同时保留授权与过期规则。


