首页 > 其他分享 >Vue+.net core 7 api跨域

Vue+.net core 7 api跨域

时间:2023-05-31 13:57:17浏览次数:48  
标签:core Vue 跨域 api target import true axios

nginx的不说,直接说在项目中配置的。

重点:前端要配代理,后端要设置返回的头文件信息。双管齐下

1、前端在项目中的vue.config.js配置中进行设置

module.exports = {
  publicPath: '/',
  outputDir: 'dist', //  发布输入文件
  assetsDir: 'static', // 需要/demo目录下放打包后的html文件,其他css、js什么的,放到/static目录下
  lintOnSave: process.env.NODE_ENV === 'development', // 是否在保存的时候检查 只有开发模式检查
  productionSourceMap: false, // webpack 打包生成map
  devServer: { // webpack 开发环境
    port: port, // 默认端口
    open: true, // 开发调试是否自动打开
    overlay: { // 出现编译器错误或警告时,在浏览器中显示全屏覆盖。除了设置为 Boolean 类型之外,我们还可以传入对象进行配置。
      warnings: false,
      errors: true
    },
    proxy: { // 代理
      '/api': { // 请求的地址中如果是/api/login中的api 就根据其中的/api匹配,最终地址:target+请求的控制器。如果设置了pathRewrite,那么执行替换规则后更换成 target中的地址,最终地址:pathRewrite执行+target+请求的控制器,如:http://localhost:9600/login
        target: 'http://localhost:9600/', // 我的api全路径是http://localhost:9600/api/login
        changeOrigin: true // 是否需要跨域
        // secure:true, //接受对方是https的接口
        // pathRewrite: {
        //   '^api': ''
        // }
      }
    }
  }
}

2、如果有封装Request需设置

import axios from 'axios'
import { MessageBox, Message } from 'element-ui'
import store from '@/store'
import { getToken } from '@/utils/auth'

axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
axios.defaults.withCredentials = false // 跨域请求是否提供凭据信息是否需要凭据。
const service = axios.create({
    //这里直接注释,不然以该地址优先请求,则代理无效
  // baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
  // withCredentials: true, // send cookies when cross-domain requests
  timeout: 5000 // request timeout
})

3、后端用的.net core 7 api,需要设置返回的Response头信息,在Program中

// 配置返回允许跨域的头部信息
string CORS1 = "mycors";//名字可以随意取
// 配置服务
builder.Services.AddCors(options =>
{
    options.AddPolicy(CORS1,
    builder => builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()
    );
});
app.UseCors(CORS1);

 

标签:core,Vue,跨域,api,target,import,true,axios
From: https://www.cnblogs.com/bklsj/p/17445897.html

相关文章

  • Vue computed property values was assigned to but it has no setter
    vue文件中的核心代码写法<template><div><v-select:items="filters"label="查询条件"solodenseclass="select-size"v-model="filterKey"clearable></v-sele......
  • vue监听浏览器窗口大小变化,做对应的操作
    页面初始化mounted的时候,通过document.body.clientWidth和document.body.clientHeight获取到浏览器的宽和高,然后通过window.onresize来监听浏览器窗口的变化,在这里来改变我们的变量宽和高即可。(created()的时候不行,因为此时document还没有生成)<template><sectionclass="p-1......
  • Vue+element搭建后台管理系统-六、实现权限管理
    在一些后台管理系统中,每个身份登录的权限不一样,以至于配置的菜单不一样。就我做过的小区物业管理系统而言,举个例子:业主登录网站只能看到社区服务中的投诉、维修以及查看公告。而管理员可以看到一些对本小区的基本操作,例如查看楼栋,查看业主,账单催缴等等…而超级管理员,可以看到所有......
  • Pycharm中开发vue element项目时eslint的安装和使用
    在PyCharm中使用ESLint对ElementUI进行语法检查和代码风格检查的配置步骤如下:确保你的项目已经配置了ESLint并且可以正常运行。如果尚未安装ESLint,请先使用npm(或者你的包管理器)在项目中安装ESLint:npminstalleslint--save-dev在项目根目录下创建一个名为.eslintrc.......
  • 在 Net Core 开发中如何解决 Cannot access a disposed object 这个问题
    一、简介NetCore跨平台项目开发多了,总会遇到各种各样的问题,我就遇到了一个这样的问题,不能访问Cannotaccessadisposedobject错误,经过自己多方努力,查阅资料,终于找到了解决办法,引发这个问题的原因大多数是多次读取请求Body流造成的,需要换一种获取请求Body流方法,不能使......
  • vue-cli详细说明
    vue-cli单页面应用程序单页面应用程序(SinglePageApplication)一个web网站只有唯一一个HTMl页面,所有功能&交互都在唯一一个页面完成vue-clivue-cli是vue.js开发的标准工具,简化了基于webpack创建工程化的Vue项目的过程。创建项目基于vue-cli快速生成工程化的Vue项目:vuecrea......
  • VUE2/3差异之模板写法
    OptionsAPI(选项API)传统的组件随着业务复杂度越来越高,代码量会不断的加大,整个代码逻辑都不易阅读和理解。虽然尽量一个文件不要写太多代码(1000行内),但总有一些大型组件要一个文件写很多代码优点:各选项编写写位置固定,结构清晰缺点:代码组织性差,相似的逻辑代码不便于复用逻......
  • vue中v-bind使用三目运算符绑定class
    <template><div><!--外边框的样式--><div:class="projectStatus===2?outlineDelay:outline"@click="clickProject(userProjectId)"><!--延期--><divv-if="projectStatus===2"......
  • aspnetcore最最简单的接口权限认证
    五月一眨眼就过去,就当凑个数吧。场景:一个小小的项目,需要一个后台,就展示几个列表,连用户表、角色表等都不需要设计。之前有写过identityserver4和jwt4的demo(exercisebook/IdentityServer4&Serilogatmain·liuzhixin405/exercisebook·GitHubexercisebook/授权/授权一/Jw......
  • net core-调用接口方式实现IHostedService的停止和启动
    usingMicrosoft.AspNetCore.Mvc;usingMicrosoft.AspNetCore.Authorization;[Route("home")][AllowAnonymous]publicclassHomeController:ControllerBase{ privatereadonlyIEnumerable<IHostedService>_hostedServices; privatereadonlyRec......