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

目录
  • axios跨域请求代理服务器配置
  • axios跨域问题解决
    • 1.在vue.config.js文件中做如下配置
    • 2.request.js(拦截器页面)如下配置
    • 3.具体请求页面如下配置

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

首先安装axios

npm install axios

然后在vue.config.js文件下配置如下代码

(若没有vue.config.js文件可以自己创建这个文件)

module.exports = {
    devServer: {
        open: true,
        port: 8001,
        proxy: {
            '/apis': {
                target: 'http://localhost:8080/thinkphp/personal_blog/public/personal.php/personal/',  // target host
                ws: true,  // proxy websockets
                changeOrigin: true,  // needed for virtual hosted sites
                pathRewrite: {
                    '^/apis': ''  // rewrite path
                }
            },
        }
    }
};

其中open表示是否运行时就启动app,port表示我们当前vue页面的端口比如下面我的页面端口是8001那么这里就写8001

然后proxy中的代码就是跨域代理服务器的配置代码

其中target就是目标api接口,比如你们接口为 http://localhost:8080/api/login 那么target就可以写http://localhost:8080/api/

然后在项目中实际用我们就可以这么写

axios.post('/apis/login', postData)
      .then(response => {
          // post 成功,response.data 为返回的数据
          console.log(response.data)
      })
      .catch(error => {
          // 请求失败
          console.log(error)
      })

那个apis就是http://localhost:8080/api/ 也就是我们在target中配置的api接口,"/apis/"就是 pathRewrite中配置的

然后就可以请求成功了,我这里的后台是以tp5框架做为后台

这里我使用的是vuecli3.0最新版的脚手架

目录结构如下

其中初始创建时没有vue.config.js的文件,这个为自己手动创建

注意 修改成功后一定要重新启动项目

axios跨域问题解决

1.在vue.config.js文件中做如下配置

  • target: 配置跨域请求的地址
  • changeOrigin: 是否跨域
  • pathRewrite: 路径重写

2.request.js(拦截器页面)如下配置

**这里的baseURL要修改成与vue.config.js文件中设置代理名称(/api)相同的名字

3.具体请求页面如下配置

(不需要做特殊配置)**

  • url: 具体请求接口

我是根据自己的项目配置的,大家可以自己对照一下,仅为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决vue cli3使用axios跨域问题

    目录 一.什么是跨域 1.跨域 2.同源策略 3.跨域问题怎么出现的 二.使用 axios 演示并解决跨域问题(vue-cli3.0) 1.项目创建.与 axios 的使用 2.跨域问题重现 3.解决跨域问题 一.什么是跨域 1.跨域 指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制. 2.同源策略 是指协议,域名,端口都要相同,其中有一个不同都会产生跨域,在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问. 3.跨域问题怎么出

  • vue如何解决axios请求前端跨域问题

    目录 前言 一.为什么会出现跨域的问题? 二.解决方案 跨域资源共享(CORS) 写在最后 前言 最近在写纯前端的vue项目的时候,碰到了axios请求本机的资源的时候,出现了访问报404的问题.这就让我很难受.查询了资料原来是跨域的问题. 在正常开发中跨域问题有很多的解决方案.最常见的就是后端修改响应头.但是前端也可以解决,通过反向代理.为了防止下一次这样的错误出现,记录一下,总结一下. 所以现在我们来复盘一下,然后解决掉. 一.为什么会出现跨域的问题? 跨域:浏览器从一个域名的网页去请求另一

  • vue-cli 3.x 配置Axios(proxyTable)跨域代理方法

    vue-cli 3.x 的beta版本,基于iview做的公司的角色权限管理平台. 3.x 版本对整个项目的构建都有很大的改动,没有原先的config文件夹,没有dev.env.js和prod.dev.js,看了教程,要自己在根目录建vue.config去配置,如果你用axios,关于代理的配置,如下: 在vue.config.js中配置: 以上这篇vue-cli 3.x 配置Axios(proxyTable)跨域代理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我

  • Vue3配置axios跨域实现过程解析

    实现跨域共3个步骤: 1,vue3.0根目录下创建vue.config.js文件: module.exports = { devServer: { proxy: { '/api': { target: 'https://you.163.com/', //接口域名 changeOrigin: true, //是否跨域 ws: true, //是否代理 websockets secure: true, //是否https接口 pathRewrite: { //路径重置 '^/api': '' } }

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

    目录 axios跨域请求代理服务器配置 axios跨域问题解决 1.在vue.config.js文件中做如下配置 2.request.js(拦截器页面)如下配置 3.具体请求页面如下配置 axios跨域请求代理服务器配置 首先安装axios npm install axios 然后在vue.config.js文件下配置如下代码 (若没有vue.config.js文件可以自己创建这个文件) module.exports = { devServer: { open: true, port: 8001

  • vue2.0 axios跨域并渲染的问题解决方法

    (用的脚手架vue-cli) 第一步: 在main.js中如下声明使用 import axios from 'axios'; Vue.prototype.$axios=axios; 那么在其他vue组件中就可以this.$axios调用使用 第二步:在webpack配置一下proxyTable(config之下的index.js) dev: { 加入以下 proxyTable: { '/api': { target: 'http://api.douban.com',//设置你调用的接口域名和端口

  • webpack+vuex+axios 跨域请求数据的示例代码

    本文介绍了webpack+vuex+axios 跨域请求数据的示例代码,分享给大家,具体如下: 使用vue-li 构建 webpack项目,修改bulid/config/index.js文件 dev: { env: require('./dev.env'), port: process.env.PORT || 8080, autoOpenBrowser: true, assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable:

  • 跨域请求 Apache 服务器配置的方法

    1.修改服务器配置文件 <Directory /www/web/yuming.com/public_html/> Options FollowSymLinks AllowOverride All Require all granted Header set Access-Control-Allow-Origin * </Directory> 2.编辑httpd.conf 找下面这行,把#去掉,目的是开启apache头信息自定义模块 #LoadModule headers_modul

  • 完美解决axios跨域请求出错的问题

    错误信息: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access. The response had HTTP status code 403

  • Vue axios 跨域请求无法带上cookie的解决

    在main.js设置 // 携带cookie axios.defaults.withCredentials = true 补充知识:VUE axios请求跨域时没有带上cookie或者每次cookie都改变 这两天用VUE写管理后端时,碰到一个奇葩问题: 我本地使用dev配置开发的时候 请求可以带上cookie信息  打包出来部署在服务器上 请求就没带上cookie信息. 然后自己慢慢排查,联合后端同事,排查这个cookie问题,前端也配置了 axios.defaults.withCredent

  • vue使用axios跨域请求数据问题详解

    axios默认是没有jsonp 跨域请求的方法的.一般来说流行的做法是将跨域放在后台来解决,也就是后台开发人员添加跨域头信息. 例如java中的 header,response.setHeader("Access-Control-Allow-Origin", www.allow-domain.com) 但是很多时候,后台出于一些原因不想修改或者已经写好jsonp的接口需要适应不同平台,此时,前端就可以单独引入依赖解决该问题了. 引入依赖 cnpm install jsonp 导入到vu

  • 基于VUE移动音乐WEBAPP跨域请求失败的解决方法

    在学习一位vue大牛的课程<VUE2.0移动端音乐App开发>时,由于vue的版本原因遇到了一些问题 这是其中之一,花费了很多的时间去解决 虽然搞定了这个问题,但是很多东西理解也不是很到位,下面详细说: 系统windows,vue版本2.9.1 项目结构如下: 这里就知道版本差异了,我没有dev-server这个文件,按照黄大牛的配置会报404的错误,错误具体我就不贴了 直接上解决办法 首先在config目录下配置index.js文件如下 然后在webpack.dev.conf中配置如下 当然

  • Vue 3.x+axios跨域方案的踩坑指南

    缘起 最近实验课上需要重构以前写过的一个项目(垃圾堆),需要添加发生邮件提醒的功能,记得以前写过一个PHP版的实现,所以想把PHP写的功能整理成一个服务,然后在前端调用.但是这个项目是JavaWeb,也就是说我需要面对跨域的问题.不过本篇文章,讲的并不是如何解决这样的跨域问题,而是我在找如何解决这个问题的路上遇到的坑. 其实,在前端工程化大行其道的现在,前后端已经分离开来,前端为了提高工作流效率往往自己开一个小型的服务器,就比如webpack.devServer.这样在前端调用后端接口的时候必然

随机推荐