当前位置:   article > 正文

【前端框架学习】vue-resource实现get、post、jsonp请求_vue前端post请求

vue前端post请求

一、发起Ajax请求的方式

1.原生js发起ajax请求

  1. <script>
  2. //步骤一:创建异步对象
  3. var ajax = new XMLHttpRequest();
  4. //步骤二:设置请求的url参数,参数一是请求的类型,参数二是请求的url,可以带参数,动态的传递参数starName到服务端
  5. ajax.open('get', 'getStar.php?starName=' + name);
  6. //步骤三:发送请求
  7. ajax.send();
  8. //步骤四:注册事件 onreadystatechange 状态改变就会调用
  9. ajax.onreadystatechange = function () {
  10. if (ajax.readyState == 4 && ajax.status == 200) {
  11. //步骤五 如果能够进到这个判断 说明 数据 完美的回来了,并且请求的页面是存在的    
  12. //console.log(ajax.responseText);//输入相应的内容
  13. }
  14. }
  15. </script>

2.jQuery的方式发起Ajax请求

  1. <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
  2. <script>
  3. $.ajax({
  4. type: 'POST', // 规定请求的类型(GET 或 POST)
  5. url: uploadV, // 请求的url地址
  6. dataType: 'json', //预期的服务器响应的数据类型
  7. data: {},//规定要发送到服务器的数据
  8. beforeSend: function () { //发送请求前运行的函数(发送之前就会进入这个函数)
  9. },
  10. success: function (result) { // 当请求成功时运行的函数
  11. },
  12. error: function (result) { //失败的函数
  13. },
  14. complete: function () { //请求完成时运行的函数(在请求成功或失败之后均调用,即在 success 和 error 函数之后,不管成功还是失败 都会进这个函数)
  15. }
  16. });
  17. </script>

二、常见的数据请求类型

1.GET请求

        ①GET请求一般用去请求获取数据;

        ②GET请求可以传参到后台,由于其参数在浏览器的地址栏的url中可见,所以隐私性安全性较差,且参数长度也是有限制的;

        ③GET请求刷新浏览器或回退时没有影响;

        ④GET 请求可被缓存;

        ⑤GET 请求保留在浏览器历史记录中;

        ⑥GET 请求可被收藏为书签;

        ⑦GET请求只能进行url编码

        ⑧GET请求比较常见的方式是通过url地址栏请求。

2.POST请求

        ①POST一般作为发送数据到后台时使用;

        ② POST请求传递参数放在Request body中,不会在url中显示,比GET要安全,且参数长度无限制;

        ③ POST回退时会重新提交数据请求;

        ④POST 请求不会被缓存;

        ⑤POST 请求不会保留在浏览器历史记录中;

        ⑥POST 不能被收藏为书签;

        ⑦POST支持多种编码方式

        ⑧ POST最常见是通过form表单发送数据请求

3.JSONP

         ①JSONP不是一门语言,也并不是什么特别开发的技术,它更像是一个BUG,一个开发者找出来可以用来作为跨域传输数据的”漏洞”;

         ②目标页面回调本地页面的方法,并带入参数;

         ③jsonp将目标作为js形式加载过来。

        参考文档:【原创】说说JSON和JSONP,也许你会豁然开朗--博客园

三、vue-resource的安装及使用

1.安装

github地址:GitHub - vue-resource: The HTTP client for Vue.js

在线cdn地址:https://cdn.jsdelivr.net/npm/vue-resource@1.5.3

注: 要使用vue-resource的时候直接在代码中引用就可以了;一是可以去上面的github链接中下载并引用,二是直接通过cdn进行在线的引用。

2.使用

在vue-resource中,使用ajax请求一般用 this.$http.get   ,通过  .then  来拿到返回的数据,包括一个成功的属性和一个失败的属性,这里需要注意的是后者是可选的。

 具体config参数参考:vue-resource/http.md at develop · pagekit/vue-resource · GitHub

下面来看一个具体的实例,以get请求为例:

  1. <body>
  2. <div id="app">
  3. <input type="button" value="get请求" @click="getInfo">
  4. </div>
  5. <!--导入vue.js-->
  6. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  7. <!--vue-resource依赖于vue,导包的时候要注意先后顺序-->
  8. <script src="https://cdn.jsdelivr.net/npm/vue-resource@1.5.3"></script>
  9. <script>
  10. var vm = new Vue({
  11. el: "#app",
  12. data: {},
  13. methods: {
  14. getInfo() {
  15. // 当发起get请求之后,通过.then来设置成功的回调函数
  16. this.$http.get('http://vue.studyit.io/api/getlunbo').then(function(result){
  17. console.log(result);
  18. });
  19. }
  20. }
  21. });
  22. </script>
  23. </body>

下面来看一个post请求的实例:

  1. postInfo() {//发起post请求 application/x-www-form-urlencoded
  2. //手动发起的post请求默认没有表单格式,所以有的服务器处理不了
  3. //通过post方法的第三个参数,{ emulateJSON: true }设置提交的内容类型为普通表单数据格式
  4. this.$http.post('http://vue.studyit.io/api/post', {}, { emulateJSON: true }).then(result => {
  5. console.log(result.body);
  6. });
  7. }

 最后来看一个jsonp的实例:

  1. jsonpInfo() {
  2. this.$http.get('http://vue.studyit.io/api/jsonp').then(result => {
  3. console.log(result.body);
  4. });
  5. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/279984
推荐阅读
相关标签
  

闽ICP备14008679号