【发布时间】:2020-08-10 16:21:00
【问题描述】:
当尝试使用 JS 解决 fetch promise 时,将模式设置为 'no-cors' 基于 this answer。但是将模式设置为 'cors' 会导致:
访问获取 '{端点}' 来自原产地“http://localhost:3000”已被 CORS 政策阻止: 请求中不存在“Access-Control-Allow-Origin”标头 资源。如果不透明的响应满足您的需求,请设置请求的 模式为“no-cors”以获取禁用 CORS 的资源。
所以我在我的函数中写了这个:
search() {
return fetch(`${baselink}${summonerEndpoint}${summoner}${apikey}`, {mode: 'no-cors'}).then(response => {
return response.json()
}).then(jsonResponse => {
console.log(jsonResponse);
if (!jsonResponse.info) {
return [];
}
return jsonResponse.info.items.map(info => ({
id: info.id,
accountId: info.accountId,
name: info.name,
profileIconId: info.profileIconId,
revisionDate: info.revisionDate,
summonerLevel: info.summonerLevel
}));
});
}
这会导致 Uncaught (in promise) SyntaxError: Unexpected end of input 出现以下错误 return response.json(),但没有更多消息。我做错了什么?
【问题讨论】:
标签: javascript cors fetch-api