iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >vuejs如何使用ajax
  • 205
分享到

vuejs如何使用ajax

2024-04-02 19:04:59 205人浏览 八月长安
摘要

这篇文章主要为大家展示了“Vuejs如何使用ajax”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vuejs如何使用ajax”这篇文章吧。

这篇文章主要为大家展示了“Vuejs如何使用ajax”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vuejs如何使用ajax”这篇文章吧。

方法:1、安装并引入axiOS,用“axios([option])”、“axios.get(url[,...])”等方法发送请求。2、安装并引入vue-resource,用“this.$Http.JSONp(url,[...])”发送请求。

教程操作环境:windows7系统、vue2.9.6版,DELL G3电脑。

vue本身不支持发送AJAX请求,需要使用vue-resource、axios等插件实现。

axios是一个基于Promise的HTTP请求客户端,用来发送请求,也是vue2.0官方推荐的,同时不再对vue-resource进行更新和维护。

vuejs使用ajax的方法

1、安装axios并引入

1)npm的方式:  npm install axios -S

2)bower的方式: bower install axios

3)cdn的方式:<script src=”https://unpkg.com/axios/dist/axios.min.js”></script>

2、基本用法

1)axios([options])

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>axios发送ajax请求基本用法</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body>
    <div id="app">
        <button @click="send">发送ajax请求</button>
    </div>
    <script>
        new Vue({
            el:"#app",
            methods:{
                send(){
                    axios({
                       method:'get',
                        url:'user.json'
                    }).then(function(res){
                        console.log(res.data.name);
                    });
                }
            }
        });
    </script>
</body>
</html>

vuejs如何使用ajax
2)axios.get(url[,options]);

传参方式:
(1)通过url传参axios(‘url?key=value&key1=val2’).then();
(2)通过params选项传参 axios(‘url’,{params:{key:value}}).then();

3)axios.post(url,data,[options]);

axios默认发送数据时,数据格式是Request Payload,并非常用的FORM Data格式,
所以参数必须要以键值对形式传递,不能以json形式传。

传参方式:

(1)自己拼接为键值对

axios.post(‘url’,’key=value&key1=value1’).then();

(2)使用transformRequest,在请求发送前将请求数据进行转换

axios.post('url',data,{
                        transformRequest:[
                                function(data){
                                    let params = '';
                                    for(let index in data){
                                        params +=index+'='+data[index]+'&';
                                    }
                                    return params;
                                }
                        ]
                    }).then(function(res){
                        console.log(res.data)
                    });

(3)如果使用模块化开发,可以使用qs模块进行转换

axios本身并不支持发送跨域的请求,没有提供相应的api,作者也暂没计划在axios添加支持发送跨域请求,
所以只能使用第三方库

跨域请求(使用vue-resource发送跨域请求)

1、使用vue-resource发送跨域请求步骤

  • 安装vue-resource并引入:npm install vue-resource -S

  • 基本用法:

使用this.$http.jsonp(url,[ops]) 发送请求

2、基本使用演示(360搜索)

1)打开360搜索,然后输入字符’a’会有一些搜索选项自动提示,如图
vuejs如何使用ajax
2)复制链接
https://sug.so.360.cn/suggest?callback=suggest_so&encodein=utf-8&encodeout=utf-8&format=json&fields=Word&word=a
3)代码演示

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>使用vue-resource发送跨域请求</title>
    <!--引入vue、vue-resource文件-->
    <script src="vue.min.js"></script>
    <script src="vue-resource.min.js"></script>
</head>
<body>
    <div id="app">
        <button @click="sendJsonp">send</button>
    </div>
    <script>
            var vm = new Vue({
                el:"#app",
                methods:{
                    sendJsonp:function(){
                        this.$http.jsonp('https://sug.so.360.cn/suggest',{
                            params:{
                                word:'a'
                            }
                        }).then(function(res){
                            console.log(res.data);
                        });
                    }
                }
            });
    </script>
</body>
</html>

4)结果

vuejs如何使用ajax

3、基本例子演示(百度搜索)

1)要求同360搜索的要求

vuejs如何使用ajax
2)复制链接
=1526436420943”>https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=a&json=1&p=3&sid=1467_21117_20927&req=2&csor=1&cb=Jquery1102060305102784707_1526436420940&=1526436420943
3)代码演示(注意)–第一次尝试
如果按照上述代码的方式去写,那结果会报错

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>使用vue-resource发送跨域请求</title>
    <!--引入vue、vue-resource文件-->
    <script src="vue.min.js"></script>
    <script src="vue-resource.min.js"></script>
</head>
<body>
    <div id="app">
        <button @click="sendJsonp">send</button>
    </div>
    <script>
            var vm = new Vue({
                el:"#app",
                methods:{
                    sendJsonp:function(){  
               this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su',{
                            params:{
                                wd:'a'
                            }
                        }).then(function(res){
                            console.log(res.data);
                        });
                    }
                }
            });
    </script>
</body>
</html>

结果会报错

vuejs如何使用ajax
那这是为什么呢?

之前360搜索jsonp回调的参数名是callback,而百度使用的参数名为cb,所以会报错

修改过后的代码如下

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>使用vue-resource发送跨域请求</title>
    <!--引入vue、vue-resource文件-->
    <script src="vue.min.js"></script>
    <script src="vue-resource.min.js"></script>
</head>
<body>
    <div id="app">
        <button @click="sendJsonp">send</button>
    </div>
    <script>
            var vm = new Vue({
                el:"#app",
                methods:{
                    sendJsonp:function(){
         this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su',{
                            params:{
                                wd:'a'
                            },
                            jsonp:'cb'
                        }).then(function(res){
                            console.log(res.data);
                        });
                    }
                }
            });
    </script>
</body>
</html>

4)结果

vuejs如何使用ajax

4、百度搜索案例演示

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>百度搜索列表</title>
    <style>
        .current{
            background-color:#CCCCCC;
        }
    </style>
    <!--引入vue、vue-resource文件-->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vue-resource@1.5.0"></script>
</head>
<body>
    <script>
    window.onload=function() {
        new Vue({
            el: "#app",
            data: {
                keyword: '',
                myData:[],
                now: -1
            },
            methods: {
                getData(e) {
                    //如果按方向键上、下,则不发请求
                    if (e.keyCode == 38 || e.keyCode == 40)
                        return;
                    this.$http.jsonp(
                    'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su', {
                        params: {
                            wd: this.keyword
                        },
                        jsonp: 'cb'
                    }).then(function (res) {
                        console.log(res.data.s);
                        this.myData = res.data.s;
                    });
                },
                changeDown() {
                    this.now++;
                    this.keyword = this.myData[this.now];
                    if (this.now == this.myData.length) {
                        this.now = -1;
                    }
                },
                changeUp() {
                    this.now--;
                    this.keyword = this.myData[this.now];
                    if (this.now == -2) {
                        this.now = this.myData.length - 1;
                    }
                }
            }
        });
    }
    </script>
    <div id="app">
        <input type="text" v-model="keyword"  
               @keyup="getData($event)" @keydown.down="changeDown"  
               @keydown.up.prevent="changeUp"
        />
        <ul>
            <li v-for="(val,index) in myData" :key="index"  
                               :class="{current:index==now}"
            >
                {{val}}
            </li>
        </ul>
    </div>
</body>
</html>

以上是“vuejs如何使用ajax”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网html频道!

--结束END--

本文标题: vuejs如何使用ajax

本文链接: https://www.lsjlt.com/news/81907.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vuejs如何使用ajax
    这篇文章主要为大家展示了“vuejs如何使用ajax”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vuejs如何使用ajax”这篇文章吧。 ...
    99+
    2024-04-02
  • vuejs如何调用json
    本篇内容主要讲解“vuejs如何调用json”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vuejs如何调用json”吧!vuejs调用json的方法:1、将json放在static的文件夹下;...
    99+
    2023-06-25
  • php ajax如何使用
    这篇文章主要讲解了“php ajax如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php ajax如何使用”吧!php ajax的用法是:1、在javascript端将str字符串进...
    99+
    2023-07-04
  • 如何使用AJAX框架
    这篇文章主要介绍“如何使用AJAX框架”,在日常操作中,相信很多人在如何使用AJAX框架问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用AJAX框架”的疑惑有所帮助!接...
    99+
    2024-04-02
  • Django中Ajax如何使用
    这篇文章将为大家详细讲解有关Django中Ajax如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、ajax发送简单数据类型:html代码:在这里我...
    99+
    2024-04-02
  • jQuery中ajax如何使用
    这篇文章主要介绍了jQuery中ajax如何使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ajax使用方式type: 默认值: "GET")。请求方式...
    99+
    2023-06-27
  • 如何使用Ajax类库
    如何使用Ajax类库,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。具体如下:ajax.jsfunction Ajax(recvT...
    99+
    2024-04-02
  • ASP.NET中Ajax如何使用
    在ASP.NET中,可以使用Ajax进行异步通信和更新页面,以下是使用Ajax的步骤:1. 引入jQuery库:在页面中引入jQue...
    99+
    2023-08-14
    ASP.NET Ajax
  • vuejs如何加dom
    这篇文章给大家分享的是有关vuejs如何加dom的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vuejs加dom的方法:1、先new创建一个实例;2、手动挂载到dom节点中;3、使用“$appendTo/$bef...
    99+
    2023-06-25
  • 如何调试vuejs
    这篇文章主要讲解了“如何调试vuejs”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何调试vuejs”吧!vuejs调试的方法:1、使用Vue-cli命令行工具初始化基于wabpack模板...
    99+
    2023-06-25
  • vuejs怎么使用less
    小编给大家分享一下vuejs怎么使用less,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 方法:1...
    99+
    2024-04-02
  • ajax中error该如何使用
    ajax中error该如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。error使用情况:1、当后台返回的dataType类型和前台写的...
    99+
    2024-04-02
  • 怎么使用vuejs prop
    这篇文章主要讲解了“怎么使用vuejs prop”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用vuejs prop”吧!vuejs prop的用法:1、使用Prop传递数据,语句如“...
    99+
    2023-06-25
  • 初学者如何使用AJAX
    本篇内容介绍了“初学者如何使用AJAX”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.创建 XMLHtt...
    99+
    2024-04-02
  • jQuery如何使用ajax请求
    这篇文章将为大家详细讲解有关jQuery如何使用ajax请求,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用最简单的ajax请求jQuery(使用ajax)提供了一个速...
    99+
    2024-04-02
  • 如何在Django中使用Ajax
    这篇文章给大家介绍如何在Django中使用Ajax,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、ajax发送简单数据类型:html代码:在这里我们仅发送一个简单的字符串views.py #coding:u...
    99+
    2023-06-08
  • vuejs如何加载echarts
    这篇文章主要介绍vuejs如何加载echarts,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 方法:1、使用“npm install echarts v...
    99+
    2024-04-02
  • thinkphp中如何使用ajax方法
    这篇文章主要介绍“thinkphp中如何使用ajax方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“thinkphp中如何使用ajax方法”文章能帮助大家解决问题。thinkphp中使用ajax方...
    99+
    2023-07-02
  • jquery中如何使用ajax请求
    本文小编为大家详细介绍“jquery中如何使用ajax请求”,内容详细,步骤清晰,细节处理妥当,希望这篇“jquery中如何使用ajax请求”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新...
    99+
    2024-04-02
  • 如何编写及使用Ajax类
    本篇内容介绍了“如何编写及使用Ajax类”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作