HTML连接到API的实现方式
API基础概念
API(Application Programming Interface)是应用程序之间的通信接口,HTML通过<script>
或fetch()
等技术与API交互,通常用于获取数据(如JSON)或提交表单。
fetch()
XMLHttpRequest
<script>
通过动态插入脚本标签加载JSONP数据(仅支持GET请求)。
使用fetch()
连接API
<!DOCTYPE html> <html> <body> <button id="loadData">加载数据</button> <div id="result"></div> <script> document.getElementById('loadData').addEventListener('click', () => { fetch('https://api.example.com/data') // 替换为实际API地址 .then(response => response.json()) // 解析JSON .then(data => { document.getElementById('result').innerText = JSON.stringify(data); }) .catch(error => console.error('Error:', error)); }); </script> </body> </html>
处理API响应数据
- JSON数据:
response.json()
解析为JavaScript对象。 - 文本数据:
response.text()
获取纯文本。 - 二进制数据:
response.blob()
处理文件流。
错误处理与异常
场景 | 解决方案 |
---|---|
网络错误 | 使用.catch() 捕获Promise错误。 |
非200状态码 | 检查response.status ,例如if (response.ok) 。 |
跨域问题 | 依赖服务器端设置Access-Control-Allow-Origin (CORS)。 |
跨域请求(CORS)
- 问题:浏览器限制不同域名间的请求。
- 解决:
- 服务器端配置CORS头(如
Access-Control-Allow-Origin:
)。 - 使用代理服务器(如Nginx)转发请求。
- 服务器端配置CORS头(如
相关问题与解答
问题1:如何处理跨域请求?
解答:
跨域请求需服务器端允许目标域名访问,若无法修改服务器,可通过以下方式绕过:
document.getElementById('loader').style.display = 'block'; // 显示加载
fetch(url)
.then(response => response.json())
.then(data => {
document.getElementById('loader').style.display = 'none'; // 隐藏加载
// 处理数据
});