Vue3 axios安装及配置 devServer属性配置

Vue使用axios、解决axios跨域 axios axios文档 axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端 从浏览器中创建 XMLHttpRequests 从 node.js 创建 http 请求 支持 Promise API 拦截请求和响应 转换请求数据和响应数据 取消请求 自动转换 JSON 数据 客户端支持防御 XSRF 看起来就很高大上,就决定是它了;但用起来脑子石化,一脸黑... 阅读详情

1. 安装axios

npm i axios --save

2. 配置axios

创建api文件夹(路径:src/api)

创建index文件 (路径:src/api/index)

配置index.js文件

import axios from 'axios'

const instance = axios.create({
    baseURL:'http://localhost:3000', 
    //不存在跨域问题这样直接配置
  
})
//登录请求
export const dologin = (data) => {
    return instance.request({
        url: '/login/cellphone',
        method: 'post',
        params: data,
 
    })
}

3. 跨域问题

如果你的前端应用和后端 需要跨域,你需要在开发环境下将 API 请求代理到 API 服务器。可以通过 *.config.js 中的 devServer.proxy 选项来配置。

当运行 npm run dev 的时候,devServer首先会在内存中创建类似的dist目录,这里不会看到生成的dist打包文件,是因为webpack-dev-server是将打包编译结果放在内存中,内部的http-sever会访问这些文件并读取数据,再发送给浏览器 ,由浏览器打开进行预览。

devServer.proxy 可以是一个指向开发环境 API 服务器的字符串:

   devServer: {
    open: false, // 编译完成是否打开网页
    host: '0.0.0.0', // 指定使用地址,默认localhost,0.0.0.0代表可以被外界访问
    port: 8080, // 访问端口
    https: false, // 编译失败时刷新页面
    disableHostCheck: true,	// 是否关闭用于 DNS 重绑定的 HTTP 请求的 HOST 检查。
    hot: true, // 开启热加载
    hotOnly: false,
    proxy: {
      [process.env.VUE_APP_API]: {
        // 拦截器(拦截链接中有/api)
        target: process.env.VUE_API_DEV_TARGET, // 'http://192.168.1.114:3000', //process.env.VUE_API_DEV_TARGET, //API服务器的地址
        changeOrigin: true,	// 是否跨域
        pathRewrite: { //重写路径
          // '^/api': ''
          [`^${process.env.VUE_APP_API}`]: ''
          // 配置出来的接口没有 /api
          // 比如/api/admin/being/classes/classInfo 会被替代成/admin/being/classes/classInfo
        }
      }
    }
  },

实际使用 高频属性详解

devServer: {
    // 运行代码的目录
    contentBase: resolve(__dirname, 'build'),
    // 监视contentBase目录下的所有文件,一旦有变化就会reload
    watchContentBase: true,
    watchOptions:{
        // 忽略文件
        ignored: /node_modules/
    },
    // 启动gzip压缩
    compress: true,
    // 端口号
    port: 5000,
    // 域名
    host: 'localhost',
    // 自动打开浏览器
    open: true,
    // 开启HMR功能
    hot: true,
    // 不要显示启动服务器的日志
    clientLogLevel: 'none',
    // 除了一些基本启动信息外,其他内容都不要显示
    quiet: true,
    // 如果出现错误信息,不要全屏提示
    overlay: false,
    // 服务器代理,解决开发环境下跨域问题
    proxy: {
        // 一旦devserver(5000)服务器接收到 /api/xxx的请求,就会把请求转发到另外一个服务器(3000)
        '/api': {
            target: 'http://localhost:3000',
            // 发送请求时,请求路径重写:将/api/xxx -> /xxx(去掉/api)
            pathRewrite:{
                '^/api': ''
            }
        }
    }
}

 

PS:devServer.disableHostCheck配置项用于配置是否关闭用于 DNS 重绑定的 HTTP 请求的 gao它通常用于搭配–host 0.0.0.0使用,因为你想要其它设备访问你本地的服务,但访问时是直接通过 IP 地址访问而不是 HOST 访问,所以需要关闭 HOST 检查。

其中的process.env.Vue_app_API是开发环境文件.env.development中的内容

VUE_APP_API = "/api"
VUE_API_DEV_TARGET = "http://192.168.1.114:3000/" //请求地址

创建axios实例

const service = axios.create({
  baseURL: process.env.VUE_APP_API,
  withCredentials: true, // send cookies when cross-domain requests
  timeout: 30000, // request timeout
  headers: {
    "Content-Type": "application/json;"
  }
});

1. proxy会拦截所有url中可以成功匹配到 ‘/api’ 的请求。(proxy采用正则匹配,一旦url中包含你要的字符串则停止向下匹配,详查proxy匹配规则)

2. 它会把拦截到的请求中的baseUrl替换为此处的target
    如,http://192.168.1.114:3000/banner为请求内容的api,
   本地项目为http://192.168.1.114:3001/进行访问,这就需要跨域,经过上述配置后。
   使用http://192.168.1.114:3001/api/baner请求时,通过devServer.proxy拦截器把                   http://192.168.1.114:3001/api进行替换成http://192.168.1.114:3000/后加/banner进行请求

api调用

export function getBrainInfo(params) {
  return service.request({
    url: '/expert/brain',
    method: 'get',
    params
  })
}

第二种

devServer: {
    disableHostCheck: true,
    open: true,
    host: '192.168.1.114', // 本机ip
    port: 3001, // 本机端口
    https: true,
    proxy: 'http://192.168.1.114:3000', // 需代理的地址
    before: app => {}
 },

代理 proxy:  当您有一个单独的API后端开发服务器,并且想要在同一个域上发送API请求时,则代理这些 url 

proxy: {
    '/proxy': {
        target: 'http://your_api_server.com',
        changeOrigin: true,
        pathRewrite: {
            '^/proxy': ''
        }
}
  • 假设你主机名为 localhost:8080 , 请求 API 的 url 是 http://your_api_server.com/user/list
  • '/proxy':如果点击某个按钮,触发请求 API 事件,这时请求 url 是http://localhost:8080/proxy/user/list 。
  • changeOrigin:是否跨域。如果 true ,那么 http://localhost:8080/proxy/user/list 变为 http://your_api_server.com/proxy/user/list 。但还不是我们要的 url 。
  • pathRewrite:重写路径。匹配 /proxy ,然后变为'' ,那么 url 最终为 http://your_api_server.com/user/list 。

参考

webpack-dev-server【devServer属性配置】_JIseven的博客-优快云博客_webpack-dev-server配置

vue.config.js文件的devServer本地开发相关配置._青颜的天空的博客-优快云博客_devserver vue.config.js

配置参考 | Vue CLI

【vue】devserver及其配置 一、devserver背景介绍 每次改代码都需要重新部署, 或者只改变修改代码行的效果 所以出现了devserver本地服务 为了完成自动编译,webpack提供了几种可选的模式 方式一:webpack watch mode 实现方法一: 在导出的配置中,添加watch:true 实现方法二: 在启动webpack的命令中,添加–watch的标识 方式二:webpack-dev-server(常用) 二、webpack-dev-server 上面的方式可以监听到文件的变化,但是事实上它本身没有自动刷新浏 阅读详情

相关推荐

解决跨域-vue3利用服务器代理

通过以上步骤,您可以在 Vue.js 中使用服务器代理来解决跨域问题,确保在开发过程中能够顺利访问其他域下的接口数据。以下是一种常见的解决方案,使用服务器代理将请求代理到目标服务器,避免浏览器的同源策略限制。在 Vue.js 的应用中,使用服务器代理(Proxy)来解决跨域问题可以通过配置。:在配置文件修改后,重启 Vue 开发服务器使配置生效。:在 Vue 组件或其他地方,直接使用相对路径。文件,请在项目根目录下创建该文件。文件中,添加代理配置。开头的请求都会被代理到。

harams的博客 959

webpack配置devServer详解

devServer: { // 运行代码的目录 contentBase: resolve(__dirname, 'build'), // 监视contentBase目录下的所有文件,一旦有变化就会reload watchContentBase: true, watchOptions:{ // 忽略文件 ignored: /node_modules/ }, // 启动gzip压缩 compress: true...

~ 6410

Vue-cli4脚手架开发有关Axios的跨域解决方案

我们常在Vue中用Axios来发送请求,但Axios本身并不能跨域,需要额外的配置 1、安装Axios $ npm install axios 2、在main.js中导入配置axios import Axios from 'axios' Vue.prototype.$axios = Axios 3、需要在vue.config.js文件中配置devServer.proxy选项来解决跨域问题 ...

weixin_43736435的博客 2422

webpack-dev-server【devServer属性配置】

前言: DevServer是webpack开发服务器。 webpack-dev-server: 是一个本地开发服务器,会自动监听变化,自动打包构建,自动更新刷新浏览器 特点: 不会产生dist文件,将打包结果暂时存在内存中,内部的http-sever访问这些文件并读取数据,发送给浏览器 减少磁盘的读取,提高构建效率 写法:在webpack.config.js文件中,通过属性devServer: { } 设置与 webpack-dev-server相关的配置 安装:下载安装...

qq_37833745的博客 1万+

vue3 - 报错error when starting dev serve: Error: Cannot find module ‘node:url‘(完美解决方法)

vue3,vite,运行项目报错,npm run dev,vue3启动报错,vue3 Error: Cannot find module 'node:url',vue3 error when starting dev serve,vue3 Failed to load config from 'xx',报错解决方法,vue3如何解决运行出现报错,vue3安装依赖后运行报错如何解决,怎么处理vue3运行报错提示,vue报错,解决报错,终端提示错误,浏览器报错,在VUE3+vite项目run dev运行起不来报

✅ 精选推荐文章 6998

【外挂编程】外挂编程技术揭秘(二)

引言: 经过上一篇文章大家可能对外挂有了一个初步的认识,之前的内容比较简单,应该大家很容易掌握。我写作过程中我发现三个篇幅可能写不完,后续还可能要多加几个篇幅,这篇我们就先以内存挂为主吧。话不多说了,让我们开始吧。 文章中代码github地址: https://github.com/Diamonds-ZhaoYu/hz_example 环境要求: 系统:Windows 语言...

c-rain 4036

Vue配置代理跨域 vue.config.js解决跨域问题

vue.config.js配置文件在vue3中没有这个文件,需要手动创建,在最外层, 在packjson.json文件同一层 module.exports = { devServer: { proxy: {//配置跨域 '/api': { target: 'http://localhost:8088/',//这里后台的地址模拟的;应该填写你们真实的后台接口 changOrigin: true,//

weixin_45079974的博客 644

ubuntu20.04开机黑屏卡在/dev/sda1:clean,***files,***blocks,解决心得记录

这个问题如果你百度,会发现目前有很多种解决方法。 有更新显卡驱动的,有卸载上一次安装软件的,还有各种奇奇怪怪的故障原因。 如果你是属于上述情况,那么按照百度和论坛的各种指引操作一般都能解决。 但我这里主要说一种特殊情况,就是我什么也没有操作,我什么也没干。就是正常使用系统关了机突然就报错了。 这也是自己亲自遇到的问题,做个小记录方便以后自己回顾。 上一次出现这种情况我重装系统了,这次用了两个月又出现了,重装成本太高,我接受不了,于是找到解决办法。 首先找个终端进入,进入终端的方法很多,用安装u盘

qq_41517017的博客 2万+

devServer.proxy代理、axios网络请求

axios时目前最流行的封装库之一,用于很方便地实现ajax请求的发送。

TKY666的博客 992

机器学习【学校智慧食堂及其应用】

本文主要介绍机器学习【智慧食堂及其应用】

qq_201729558 2573

ENVI+SARscape实战:从哨兵一号数据到地震形变制图全流程解析

本文详细解析了使用ENVI和SARscape软件从哨兵一号数据生成地震形变图的全流程,包括数据获取、干涉处理、相位解缠等关键步骤。通过实战技巧和参数设置建议,帮助用户高效处理SAR数据,提升地震形变监测的精度和可视化效果。

weixin_30460489的博客 385

vue-cli3.x中使用axios发送请求,配合webpack中的devServer编写本地mock数据接口(get/post/put/delete)...

vue-cli3.x中使用axios发送请求,配合webpack中的devServer编写本地mock数据接口(get/post/put/delete) 手把手式笔记 Axios配置 安装 axios npm install axios main.js同级目录新建axios配置文件setaxios.js import axios from 'axios' // import store f...

weixin_30835649的博客 835

5G NR协议栈及功能1 - 总体架构与物理层

  备注:本文所有图片均来自3GPP标准,包括3GPP TS 38.300 V15.0.0 (2017-12)和3GPP TS 38.202 V15.0.0 (2017-12)等。本文主要介绍截止目前(2018年1月25日),3GPP 5G NR相关的协议内容,后期可能会有更新。   本系列共分为两部分:   1. 5G NR协议栈及功能1 - 总体架构与物理层 http://blog...

Wei Xingguang 11万+

vue2利用axios调用后端接口,并配置devServer.proxy实现跨域显示数据;代理后出现404问题

vue2利用axios调用后端接口,并配置devServer.proxy实现跨域显示数据;代理后出现404问题

QWY1285236058的博客 4421

DRV8711驱动器的各寄存器的介绍

drv8711驱动器

PCLintelligence的博客 1636

OBC_开环扫频波特图拟合操作流程(结合 Simulink)

摘要: 本文详细介绍了基于Simulink的开环扫频波特图测试与拟合流程,适用于电源/控制系统(如LLC/PFC)的小信号分析。主要内容包括:1)前期准备(测试点选择、信号范围设定);2)Simulink建模方法(信号注入、数据记录);3)两种扫频方式(逐频正弦/Chirp扫频)的实现;4)MATLAB数据处理(FFT分析、传递函数拟合);5)线性分析工具使用技巧。重点强调了激励信号幅值控制、稳态数据采集及模型验证方法,并提供完整MATLAB脚本示例。该流程可有效获取系统频域特性,为控制器设计提供可靠依据。

Sumerking的博客 234

小白学习Vue(12)--axios的封装使用 | devServer.proxy的配置 | 前后端分离调用请求

12. axios的封装: 12.1. axios的安装引入:  12.1.1. 安装:  12.1.1. 引入以及import/export: 12.2. vue.config.js的配置: 12.3. axios的封装: 12. axios的封装: 项目中会有很多请求,一般我们都会将axios的get、post请求方式进行封装,这样在使用的时候会方便、美观很多  本文使用了webstorm对vue进行前端分离,所以要准备好vue的环境,可以参考:环境安装及项目构建  12.1. axios的安.

假人一个的博客 1715

【连接器专题】 EIA-364 系列标准的完整列表

EIA-364 系列标准在电子工业中具有重要的地位,为电子连接器和互连系统的测试和验证提供了统一的、可操作的流程和方法,有助于提高电子产品的质量和可靠性,促进了电子工业的发展

一点硬件 2662

vue-cli3配置axios代理跨域(二)——配置步骤

关于代理跨域的原理,请查看:https://blog.csdn.net/qq_36485978/article/details/100016790 一、安装vue vue-cli3安装插件用add命令。 vue add axios 安装完之后会在src目录下自动生成一个plugins文件夹,在main.js中会自动引入axios,所以不需要再添加什么了。 二、配置代理跨域 ...

qq_36485978的博客 3131

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

vue-cli3中配置axios及使用及解决跨域的问题

vue-cli3中配置axios及使用   1.vue 安装 npm install axios ,在main.js里面就可以使用axiso如下配置: import axios from 'axios' Vue.prototype.$axios = axios axios.defaults.baseURL = 'http://10.81.36.96:8080';   2.vue页面,如下调用,不会出现跨域问题 methods: { async getArtInfo() {

atu1111的博客 2391

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

在uniapp中如何安装axios并解决跨域问题

它的作用是将请求路径中的 '/api' 替换为空字符串,即将 '/api' 去掉,这样最终发送到目标服务器的请求路径就不包含 '/api' 了。它的作用是配置开发服务器的代理,用于将请求转发到指定的目标服务器。综上所述,这段代码的作用是将以 '/api' 开头的请求代理到目标服务器。: 这是 Node.js 中用于导出模块的语法,表明这是一个模块的导出。: 这是开发服务器的代理配置,用于将某些请求代理到另一个服务器。: 这是代理的目标服务器地址,即请求将被转发到这个地址。如下图显示就是跨域问题。

一只猫 2068

Vue3.0 axios跨域请求代理服务器配置

参考周家大小姐.https://blog.csdn.net/qq_40190624/article/details/85257610 首先安装axios npm install axios 然后在vue.config.js文件下配置如下代码 (若没有vue.config.js文件可以自己创建这个文件) module.exports = { devServer: { ...

tdl081071tdy的博客 3877

VUE3.0,DAY56,vue的配置代理服务器,axios发送请求

VUE3.0,DAY56axios axios 使用node.js写两个后台服务器,并运行,里边保存着不同的内容。使用axios发送ajax请求,axios是对js内置的xhr方法进行的封装。在使用前需要在命令行引入axios。打开vs code 新终端选项,输入命令安装axios库。 npm i axios 在使用的时候,注意:协议、主机名、端口号要 ...

疯子的梦想@的博客 635

Vue2Vue3代理配置 安装 axios 和使用

3.设置代理服务器,可发送请求和解决跨域问题,跨域可通过(cors,jsonp,代理服务器)现在通过cli的代理服务器实现ajax请求。1最开始一直提示400错误,根据下面的测试可成功安装。一般使用多个后台实现方式。

qq_32768235的博客 927

vue项目中使用aixos及webpack的devServer模拟后台数据

1.vue中使用axios 1.安装axios npm install --save axios 2.引入axios 在入口main.js中导入axios 并将axios写为vue的原型 import axios from 'axios' // 将axios注册为全局函数 Vue.prototype.axios = axios; 3.用本地json文件模拟请求后台数据 在webpack-d...

weixin_42839354的博客 472
上一篇: Vue3 Vant3 安装及配置
下一篇: vue项目引入阿里巴巴矢量图标库 ——字体图标
BUG_devil
博客等级 码龄5年 45粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值