api 调用是现代 web 开发的关键部分。 javascript 提供了多种方法来完成此任务,每种方法都有自己的优点和缺点。本文将向您介绍在 javascript 中进行 api 调用的四种主要方法,您可以在项目中使用它们。
xmlhttp请求 (xhr)
xmlhttprequest (xhr) 是一种传统的 api 调用方式,所有浏览器版本都支持。这种方法可靠且广泛使用,尽管其语法有时难以阅读和维护。
const xhr = new xmlhttprequest();
xhr.open("get", "https://api.example.com/data", true);
xhr.onreadystatechange = function () {
if (xhr.readystate === 4) {
if (xhr.status === 200) {
console.log(json.parse(xhr.responsetext)); // parse and log the response data
} else {
console.error('error:', xhr.statustext); // log any errors
}
}
};
xhr.send();
获取api
fetch api 是一种基于承诺的更现代、更简单的 api 调用方式。它支持异步操作,并且很容易使用async和await进行扩展。
fetch("https://api.example.com/data")
.then(response => response.json())
.then(data => console.log(data)) // log the response data
.catch(error => console.error('error:', error)); // log any errors
使用异步和等待。
async function fetchdata() {
try {
const response = await fetch("https://api.example.com/data");
const data = await response.json();
console.log(data); // log the response data
} catch (error) {
console.error('error:', error); // log any errors
}
}
fetchdata();
阿克西奥斯
axios 是一个流行的 http 请求库,它提供了一个简单且一致的接口来进行 api 调用。需要先使用npm或yarn安装。
npm 安装 axios
或
纱线添加 axios
然后就可以使用axios进行api调用了:
const axios = require('axios');
axios.get("https://api.example.com/data")
.then(response => {
console.log(response.data); // log the response data
})
.catch(error => {
console.error('error:', error); // log any errors
});
使用异步和等待:
async function fetchdata() {
try {
const response = await axios.get("https://api.example.com/data");
console.log(response.data); // log the response data
} catch (error) {
console.error('error:', error); // log any errors
}
}
fetchdata();
jquery ajax
jquery ajax 是一种使用 jquery 库进行 api 调用的方法。虽然 jquery 现在不太常用,但它仍然出现在较旧的项目中。
<!-- Include jQuery library -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script><script>
$(document).ready(function() {
$.ajax({
url: "https://api.example.com/data",
method: "GET",
success: function(data) {
console.log(data); // Log the response data
},
error: function(error) {
console.error('Error:', error); // Log any errors
}
});
});
</script>
来源照片:
拉科齐、格雷格.网站设计书籍。在线的。在:不飞溅。 2016。可从:https://unsplash.com/photos/html-css-book-vw3ahg4x1ty。 [引用。 2024-07-16].