三尺非寒 发表于 2024-10-31 08:13:50

Vue3 Ajax(axios)

Vue 版本推荐利用 axios 来完成 ajax 请求。
安装方法

利用 cdn:

<script src="https://unpkg.com/axios/dist/axios.min.js"></script> 利用 npm:

$ npm install axios  GET 方法

我们可以简单的读取 JSON 数据:
const app = {
data() {
    return {
      info: 'Ajax 测试!!'
    }
},
mounted () {
    axios
      .get('https://www.runoob.com/try/ajax/json_demo.json')
      .then(response => (this.info = response))
      .catch(function (error) { // 请求失败处理
      console.log(error);
    });
}
}

Vue.createApp(app).mount('#app')  利用 response.data 读取 JSON 数据:
<div id="app">
<h1>网站列表</h1>
<div
    v-for="site in info"
>
    {{ site.name }}
</div>
</div>
<script type = "text/javascript">
const app = {
data() {
    return {
      info: 'Ajax 测试!!'
    }
},
mounted () {
    axios
      .get('https://www.runoob.com/try/ajax/json_demo.json')
      .then(response => (this.info = response.data.sites))
      .catch(function (error) { // 请求失败处理
      console.log(error);
    });
}
}

Vue.createApp(app).mount('#app')
</script> GET 方法传递参数格式如下:
// 直接在 URL 上添加参数 ID=12345
axios.get('/user?ID=12345')
.then(function (response) {
    console.log(response);
})
.catch(function (error) {
    console.log(error);
});

// 也可以通过 params 设置参数:
axios.get('/user', {
    params: {
      ID: 12345
    }
})
.then(function (response) {
    console.log(response);
})
.catch(function (error) {
    console.log(error);
}); POST 方法

const app = {
data() {
    return {
      info: null
    }
},
mounted () {
    axios
      .post('https://www.runoob.com/try/ajax/demo_axios_post.php')
      .then(response => (this.info = response))
      .catch(function (error) { // 请求失败处理
      console.log(error);
      });
}
}

Vue.createApp(app).mount('#app') POST 方法传递参数格式如下:
axios.post('/user', {
    firstName: 'Fred',      // 参数 firstName
    lastName: 'Flintstone'    // 参数 lastName
})
.then(function (response) {
    console.log(response);
})
.catch(function (error) {
    console.log(error);
}); 执行多个并发请求

function getUserAccount() {
return axios.get('/user/12345');
}

function getUserPermissions() {
return axios.get('/user/12345/permissions');
}
axios.all()
.then(axios.spread(function (acct, perms) {
    // 两个请求现在都执行完成
})); axios API

可以通过向 axios 传递相关配置来创建请求。
axios(config)
// 发送 POST 请求
axios({
method: 'post',
url: '/user/12345',
data: {
    firstName: 'Fred',
    lastName: 'Flintstone'
}
});
//GET 请求远程图片
axios({
method:'get',
url:'http://bit.ly/2mTM3nY',
responseType:'stream'
})
.then(function(response) {
response.data.pipe(fs.createWriteStream('ada_lovelace.jpg'))
});
axios(url[, config])
// 发送 GET 请求(默认的方法)
axios('/user/12345'); 请求方法的别名

为方便利用,官方为所有支持的请求方法提供了别名,可以直接利用别名来发起请求:
axios.request(config)
axios.get(url[, config])
axios.delete(url[, config])
axios.head(url[, config])
axios.post(url[, data[, config]])
axios.put(url[, data[, config]])
axios.patch(url[, data[, config]])

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Vue3 Ajax(axios)