vue axios跨域请求_vue跨域访问

vue axios跨域请求_vue跨域访问vue中axios跨域请求1.axios是第三方库使用方法:使用npm:$npminstallaxios使用bower:$bowerinstallaxios使用cdn:<scriptsrc=”https://unpkg.com/axios/dist/axios.min.js”></script>axios…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

vue中axios跨域请求

1.axios 是 第三方库
使用方法:

  • 使用 npm:
    $ npm install axios
  • 使用 bower:
$ bower install axios
  • 使用 cdn:
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

axios get 请求示例

HTML代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/axios/0.19.0-beta.1/axios.min.js"></script>
    <script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
</head>
<body>
    <div id="app">
        <button @click="getData">get-mock-data</button>
        <button @click="get_api_data"> get-api-data </button>
    </div>
    
</body>
</html>

js代码

<script>
          console.log( axios )
        // 当我们引入axios cdn后会全局暴露出一个axios对象
        new Vue ({
            el:"#app",
            methods:{
                
                  getData(){
                    // var p = axios({
                    //     url:'./data/name.json'
                    // });
                    // console.log(p);//axios是一个promise对象

                    axios({
                        url:"./data/name.json",
                        method:'get',//method默认是get请求
                    }).then(function(res){
                        console.log(res)
                        // axios会对我们请求来的结果进行再一次的封装( 让安全性提高 )
                    }).catch(err=>{
                        console.log(err)
                    })

                },

请求结果 : axios会对我们请求来的结果进行再一次的封装( 让安全性提高 )
在这里插入图片描述

 //get在线跨域请求
               get_api_data(){
                  axios({
                      url:'https://请求地址',//在线跨域请求
                      method:"GET",//默认是get请求
                      headers:{//设置请求头
                          'X-Client-Info':' {"a":"3000","ch":"1002","v":"5.0.4","e":"15611234619393093477584"}',
                          'X-Host': 'mall.film-ticket.film.list',
                      },
                      params:{//?search后面的值写在params中
                          cityId: 330100,
                          pageNum: 1,
                          pageSize: 10,
                          type: 1,
                          k: 3969168,
                      }
                  }).then(function(val){
                      console.log(val) // axios会对我们请求来的结果进行再一次的封装( 让安全性提高 )
                  }).catch(function(err){
                      console.log(err)
                  })
              },
          }
      })
  </script>

get跨域请求中params:中的值对应hearders中Query String Parameters
在这里插入图片描述
在这里插入图片描述
get方法总结:

A: 无参数
        axios.get(url).then(res=>console.log(res).catch(error=>conosle.log(error))
 B: 有参数
        axios({
            url: 'http://xxx',
            method: 'get' //默认就是get,这个可以省略,
            params: {
                key: value
            }
        })

axios post 请求示例

html代码
 <button  @click="postData"> post-data </button>
 
 js代码
       postData(){
                    let params = new URLSearchParams()//得到params对象,用来接收请求参数
                    // params.append( key, value )  key是参数名,value是参数值
                    //传递参数值
                     params.append( 'a', 2 )
                     params.append( 'b', 2 )

                    axios({
                        url:'http//localhost/php',
                        method:'post',
                        headers:{//请求头设置为表单提交的请求头
                            'Content-Type':"application/x-www-form-urlencoded"
                        },
                        data:params,
                    }).then( function (val) {
                        console.log(res)
                    }).catch( function (error) { 
                        console.log(error)
                    })
                }
            }
            官方文档中axios post请求案例有点问题,请求会出现跨域问题;
			以上示例为解决官方文档存在问题的写法;

post方法总结

//对于post请求可以统一设置一个请求头,后面所有post请求就可以不用单独设置请求头了
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

 // 具体语法
 let params = new URLSearchParams()//得到params对象,用来接收请求参数

// params.append(key,value) //请求参数写成键值对key就是参数名,value就是参数值

params.append('a',1)
params.append('b',2)

axios({
    url: 'http://localhost/post.php',
    method: 'post',
    data: params,//将请求参数写入data;
      headers: {  //单个请求设置请求头
       'Content-Type': "application/x-www-form-urlencoded"
    }
})
.then(res => {
    console.log( res )
})
.catch( error => {
    if( error ){
    throw error
}
})
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194664.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • WRF参数化方案_参数优化方法

    WRF参数化方案_参数优化方法=============================================微物理过程方案:Lin长波辐射方案:RRTM短波辐射方案:Dudhia陆面过程方案:Noah边界层方案:YSU积云参数化方案:Kain-Fritsch微物理过程方案:Goddard长波辐射方案:RRTM短波辐射方案:Goddard陆面过程方案:Noah边

    2025年7月21日
    3
  • 用App Designer 制作2048小游戏

    用App Designer 制作2048小游戏用 AppDesigner 制作 2048 小游戏用 AppDesigner 制作的 2048 MATLAB 版本是 2020b 记录下创作思路 以免日后忘记 APP 界面设计 APP 界面如下 为了好玩 还加入了游戏进行时播放音乐的功能 下面是游戏结束界面 除了按钮和开关部分 其余都可用标签控件制作 游戏结束界面在制作时将其 Visible 属性设为 Off 确保在主界面上层 当判定游戏结束时再将 Visible 属性修改为 On 即可 app gameOverLabe Visible

    2025年10月29日
    3
  • GPIB-VC编程

    GPIB-VC编程CompilingandLinkingVISAPrograms(C/C++)Thissectionprovidesasummaryofimportantcompiler-specificconsiderationswhendevelopingWin32applications.1.LinkingtoVISALibrariesYourapp

    2022年6月26日
    42
  • 我所喜欢的Drupal教程及资源

    我所喜欢的Drupal教程及资源本文转载于http://www.sayblog.me/the-drupal-tutorials-and-resourcesthat-i-like.html  Drupal是一个免费开源的内容管理系统(CMS),就跟Wordpress一样,不过要比Wordpress更具威力,也更复杂一些。Wordpress已经做得相当好了,甚至可以说已经很完美了,而且简单易用,所以它的用户比Dru

    2022年6月14日
    25
  • linux关闭防火墙命令iptables_centos开启防火墙命令

    linux关闭防火墙命令iptables_centos开启防火墙命令1.iptables常用命令1.1查看是否已经安装了iptables以及iptables版本号iptables-V(注意:V是大写字母V)1.2关闭iptablesserviceiptablesstop1.3启动iptablesserviceiptablesstart1.4重启iptablesserviceiptablesrestart1.5保存命令行中设置的ipt…

    2025年12月8日
    5
  • 如何用ubuntu命令打开pycharm_ubuntu安装pycharm教程

    如何用ubuntu命令打开pycharm_ubuntu安装pycharm教程linux中打开pycharm的方法:方法一:在Linux终端进入pycharm安装路径下的bin目录下,输入如下命令:./pycharm.sh方法二:设置桌面快捷方式,然后通过快捷方式启动。设置快捷方式的方法:终端输入:sudogedit/usr/share/applications/Pycharm.desktop粘贴模板:[DesktopEntry]Type=ApplicationNa…

    2022年8月28日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号