本文详解因 url 拒绝拼写错误导致的 `cross-origin request blocked` 错误,重点修复 `api.unslpash.com` 这一无效域名,并同步修正 dom 属性拼写问题,使前端可正常调用 unsplash 官方 api。
在使用 Unsplash API 进行前端图像搜索开发时,你遇到的 “Cross-Origin Request Blocked: The Same Origin Policy disallows…” 错误,表面看是 CORS 问题,但实际根源并非浏览器策略限制——而是你向一个根本不存在的域名发起了请求,导致请求被重定向或返回非预期响应,进而触发浏览器的跨域安全拦截。
核心问题在于这行代码中的拼写错误:
const url = `https://api.unslpash.com/search/photos?page=${page}&query=${inputData}&client_id=${accesKey}`;
// ❌ 错误:unslpash.com → 域名不存在,DNS 解析失败或返回 404/301,fetch 实际未到达 Unsplash 服务器✅ 正确的官方 API 域名是:https://api.unsplash.com(注意是 unsplash,非 unslpash)。请立即更正为:
const url = `https://api.unsplash.com/search/photos?page=${page}&query=${inputData}&client_id=${accesKey}`;此外,代码中还存在一处 DOM 属性拼写错误,虽不直接引发 CORS,但会影响功能:
imageLink.targer = "_blank"; // ❌ 'targer' 是错别字
应改为标准属性名:
imageLink.target = "_blank"; // ✅ 正确拼写,确保链接在新标签页打开
⚠️ 补充注意事项:
const encodedQuery = encodeURIComponent(inputData);
const url = `https://api.unsplash.com/search/photos?page=${page}&query=${
encodedQuery}&client_id=${accesKey}`;修复上述两处关键错误后,你的图像搜索功能即可正常运行。记住:CORS 报错有时只是“症状”,真正的病因往往藏在请求链路的第一环——URL 是否真实可达。
来电咨询