Vue 版本推荐利用 axios 来完成 ajax 请求。
安装方法
利用 cdn:
- <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
复制代码 利用 npm:
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([getUserAccount(), getUserPermissions()])
- .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企服之家,中国第一个企服评测及商务社交产业平台。 |