Access-Control-Allow-Origin 标头如何工作以及如何修复 CORS 错误?
大家好!我是 JavaScript 新手,尝试从前端向另一个域名(天气 API)发起请求。我有一个纯 JS 的简单代码:
```javascript
fetch('https://api.example-weather.com/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('错误:', error));
```
但在浏览器控制台中我看到错误:
> 从源 'http://localhost:3000' 对 'https://api.example-weather.com/data' 的 fetch 访问已被 CORS 策略阻止:请求的资源上没有 'Access-Control-Allow-Origin' 标头。
我读到需要添加 `Access-Control-Allow-Origin` 标头,但不知道应该添加在哪里:服务器端还是客户端?我尝试像这样在 fetch 中添加它:
```javascript
fetch('https://api.example-weather.com/data', {
headers: {
'Access-Control-Allow-Origin': '*'
}
})
```
但这不起作用。请解释一下这个标头实际上是如何工作的,以及我应该怎么做才能