js fetch 隧道
时间: 2024-10-03 17:00:15 浏览: 16
在JavaScript中,fetch API 是一种用于从服务器获取数据的现代网络请求API。"隧道"通常是指通过代理(proxy)来处理网络请求,特别是在跨域访问资源受限的情况下。当直接使用 fetch 发起的请求被目标服务器拒绝(如 CORS 跨源资源共享策略限制),可以设置一个代理服务器(如 HTTP 或 HTTPS 代理),将 fetch 请求发送到这个代理服务器,然后由代理服务器再转发到实际的目标地址。
例如,你可以这样做:
```javascript
const proxyUrl = 'http://localhost:8080'; // 代理服务器的URL
fetch('https://api.example.com/data', {
mode: 'no-cors', // 使用 no-cors 模式防止同源策略阻止
credentials: 'omit', // 忽略凭证(适用于不需要认证的情况)
headers: {
'X-AUTH': 'your-token' // 如果需要身份验证,添加合适的头部
},
// 使用 proxy 属性指定代理服务器
proxy: {
host: proxyUrl,
path: '/api' // 代理服务器上接收请求的实际路径
}
})
.then(response => response.json())
.catch(error => console.error('Error:', error));
```
阅读全文