.asp中.cs文件路径在哪_ASP.NET实战007:MVC解决跨域请求问题详解

2023-10-29

前面刚说到Vue实战057:前端解决跨域问题详解,今天顺便把ASP.NET MVC的跨域解决方案也分享下。什么是跨域问题这里就不在复述了,前面已经解释了很多次了,需要了解的可以参考Vue实战057:前端解决跨域问题详解,这里主要说下在ASP.NET MVC中如何解决跨域请求问题。

​ASP.NET MVC项目跨域

ASP.NET MVC是Microsoft在WebForm框架的基础上改进的一款Web开发框架,通过把项目分成Model、View和Controller几个模块将业务逻辑、数据、界面显示等代码进行组织分离,降低彼此间的耦合度,从而使系统更加灵活,易于扩展,也大大提高代码的可重用性和开发效率。在ASP.NET MVC项目下我们也可以实现前后端分离项目,在Controller控制器中必须返回ActionResult类型,默认返回ViewResult视图结果并将视图呈现给网页显示。但是我们只希望其作为后台接口为Vue提供后台服务,这里们就可以屏蔽掉返回ActionResult类型的方法,改用JsonResult等返回类型。

ASP.NET MVC常见的ActionResult衍生类型主要有:JsonResult(返回JSON格式内容)、FileResult(返回文件)、FilePathResult(返回文件路径)、FileStreamResult(返回流文件)、EmptyResult(返回空值)、ContentResult(返回文本内容)、RedirectResult(重定向URL)、ViewResult(返回视图)、JavaScriptResult(返回JavaScript代码)等等,比如说我们用JsonResult定义一个简单的用户名和密码验证的接口(这里没有做数据库验证)。

前端这里用Vue之前写好的项目来测试,这里我封装了axios和api接口定义所以写法可能不一样。这里需要注意的是ASP.NET MVC启动的是http://localhost:56627/,所以在配置axios.defaults.baseURL属性的时候要注意下,别写成了"协议+IP+端口"形式这样是访问不到ASP.NET MVC后台的。

接下来我们就要配置跨域访问了,不然前端是无法访问到我们的Login方法。ASP.NET MVC配置跨域最简单的方法就是在Web.config文件中添加应用程序配置,在configuration中添加如下配置前台即可跨域访问到网站数据。Access-Control-Allow-Origin设置为*表示允许所有域名,如要设置特定的域名,可以填写具体域名。

如果你想实现指定Controller或Action允许跨域访问,那么我们就可以在App_Start封装一个跨域类AllowOrigin,获取当前请求的源地址,并指定该地址添加Access-Control-Allow-Origin属性,再分别定义两个针对Controller或Action定义属性的类,当其被指定需跨域时调用AllowOrigin中的addOrigin方法为其添加Access-Control-Allow-Origin属性。

如何在指定的位置配置允许跨域访问,引入using WebApplication3.App_Start;在需要允许跨域的Controller前添加[ControllerAllowOrigin(AllowSites = new string[] { "http://localhost:1527" })],在需要允许跨域的Action前添加[ActionAllowOrigin(AllowSites = new string[] { "http://localhost:1527" })]即可。

ASP.NET Web API项目跨域

Web API是一款借鉴了RESTful风格的轻型框架,用于构建基于 HTTP 的服务,它与 ASP.NET MVC应用程序的工作方式大致相同,直接返回用户的数据请求而不是视图。Web API提供了针对其跨域设置的插件:Microsoft.AspNet.WebApi.Cors。在工具->NuGet包管理器->管理解决方案的NuGet程序包中搜索下载插件Microsoft.AspNet.WebApi.Cors,或者在工具->NuGet包管理器->程序包管理器控制台窗口中输入命令:Install-Package Microsoft.AspNet.WebApi.Cors安装最新的包和更新相关的依赖项。

ASP.NET Web API在App_Start 目录下提供了WebApiConfig.cs配置文件,我们在WebApiConfig.cs文件中的Register方法中添加跨域配置:config.EnableCors(new EnableCorsAttribute("*", "*", "*"));就可以实现全局跨域配置了,如果你想在每个Controller或Action启用CORS就可以只启用跨域功能config.EnableCors(),具体的跨域配置可以在指定的Controller或Action中配置。

然后我们在控制器中添加EnableCors属性来针对每个Controller或者每个Action进行跨域访问配置,如果您设置EnableCors属性在Controller控制器,那么该控制器下的所有Action都支持跨域。如果想对某一个Action禁用跨域,可以使用[DisableCors]特性类屏蔽。如果你设置EnableCors属性在Controller上则只有该方法允许跨域(需引入空间名:using System.Web.Http.Cors;)。

注意事项:该方法中的Controller继承至ApiController而非Controller,Microsoft.AspNet.WebApi.Cors是针对继承ApiController的控制器生效,对继承Controller的控制器无效!

更多ASP.NET实战实战技巧可参考专栏:ASP.NET MVC实战系列

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.asp中.cs文件路径在哪_ASP.NET实战007:MVC解决跨域请求问题详解 的相关文章

  • C++ do...while 循环

    不像 for 和 while 循环 它们是在循环头部测试循环条件 do while 循环是在循环的尾部检查它的条件 do while 循环与 while 循环类似 但是 do while 循环会确保至少执行一次循环 语法 C 中 do wh
  • Nginx 4层代理部署

    Yum安装Nginx 系统环境 Centos 添加yum源并安装 CentOS 7 rpm Uvh http nginx org packages centos 7 noarch RPMS nginx release centos 7 0
  • JS 数组去重复数据、处理数组数据

    需求 去除数组里id重复的对象 let arr id 1 name zhang id 1 name li id 2 name he id 2 name zhao id 2 name zhao id 3 name liu name li id
  • Web端报错

    Chunk vendors 2a8c602b js 48混合内容 位于 https 3323 sfdy13168 com goodsManage 的页面通过HTTPS加载 但请求了不安全的XMLHttpRequest端点 http 110
  • nacos配置文件优先级

    1 通过工程的应用名字找到德配置文件的优先级最高 比如content api工程功程对应的content api dev yaml文件是最先的优先级 2 扩展配置 项目中会依赖其他模块的配置文件所依赖的nacos配置 的优先级其次 举例 c
  • cuda 安装

    零 修订记录 序号 修订内容 修订时间 1 新增 20210708 2 支持tensorflow 20210715 一 摘要 本文主要介绍cuda 的安装 二 环境信息 一 软件信息 2 1 1 操作系统 root localhost ca
  • 【Java】* 给定一个整数数组 nums 和一个目标值 target, * 请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    leetcode 刷题 数组 题目 给定一个整数数组 nums 和一个目标值 target 请你在该数组中找出和为目标值的那 两个 整数 并返回他们的数组下标 示例 给定 nums 2 7 11 15 target 9 因为 nums 0
  • openGauss学习笔记-64 openGauss 数据库管理-创建和管理表空间

    文章目录 openGauss学习笔记 64 openGauss 数据库管理 创建和管理表空间 64 1 背景信息 64 2 注意事项 64 3 操作步骤 64 3 1 创建表空间 64 3 2 在表空间中创建对象 64 3 3 查询表空间
  • git checkout切换到指定commit

    切换分支是 git checkout 最常见的功能 这里不做介绍 今天主要介绍下它在撤销文件改动上的应用 放弃单个文件修改 注意不要忘记中间的 不写就成了检出分支了 git checkout filepathname 放弃所有的文件修改 g
  • 值得推荐的C/C++框架和库,包含很多开源项目 (真的很强大)

    值得学习的C语言开源项目 1 Webbench Webbench是一个在linux下使用的非常简单的网站压测工具 它使用fork 模拟多个客户端同时访问我们设定的URL 测试网站在压力下工作的性能 最多可以模拟3万个并发连接去测试网站的负载
  • mysql分组统计占比/百分比

    需求 统计当前数据库user tasks表中 不同status字段值对应的记录条数及占比 sql语句 SELECT status number concat round number total 100 00 2 percent FROM
  • Week 2 Git &Github 5: Amending commits

    git commit amend overwirte 上一次commit 用这个命令的前提是只能对本地的commit进行这样的操作 不要在跟他人公用仓库时使用这个操作 容易出现错误 使用案例 win10通过左下角windows图标 右键打开
  • 量化投资学习-17:庄家和主力为啥要在牛市到顶后砸盘?

    一直很奇怪 为啥庄家和主力要留一小部分筹码在牛市的顶部砸盘 你赚完自己的钱 走人就是了 走人之后 让散户自己玩不就得了 为啥要做这种损人不利己的事情呢 砸盘是要牺牲砸盘筹码的利益的 不理解这一点 是因为格局不够大 这是散户的眼光局限性所决定
  • 复现贪吃蛇程序——吃食物增加长度(最后一篇)

    本节便是贪吃蛇程序的最终部分 实现吃食物增加长度的功能 当二维数组canvas High Width 的元素值为 2时输出食物数值 F 其实现思路和3 4 2节中小蛇的移动类似 只需保持原蛇尾 不将最大值变为0即可 先奉上完整的代码 inc
  • 3个珍藏已久的资源网站,个个都很厉害,赶快私藏起来吧

    现在想要找到好的资源真的是难上加难了 拥有资源即拥有财富 今天小编就来给大家分享几个优质的资源网站 让你从此以后找资源不发愁 1 爱资料工具 这个网站是一个小工具合集的网站 虽说它页面布局有点混乱 但是这完全不影响它的实用性 包括开发工具
  • python爬虫股票数据分析判断股票好坏_学 Python 爬虫:爬取股票信息

    分析 打开 Chrome 的开发者模式 将股票代码一个一个选出来吧 我们可以将所有的股票代码存放在一个列表中 剩下的就是找一个网站 循环的去将每一只股票的数据取出来咯 同花顺 想必各位聪明的同学已经发现了 000001 就是股票代码 我们接
  • Git中的Sign Off功能是什么?

    Git中的Sign Off功能有什么意义 git commit signoff 我什么时候应该使用它 如果有的话 1楼 签名是提交消息末尾的一行 用于证明谁是提交的作者 其主要目的是改善对谁做了什么的追踪 尤其是补丁 提交示例 Add te
  • Ubuntu 15 安装Zsh与oh-my-zsh

    一 前言 Zsh和bash一样 是一种Unix shell 但大多数Linux发行版本都默认使用bash shell 但Zsh有强大的自动补全参数 文件名 等功能和强大的自定义配置功能 oh my zsh是基于zsh的功能做了一个扩展 方便
  • 数据结构--顺序表,栈的实现

    顺序表 顺序表是在计算机内存中以数组的形式保存的线性表 线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素 使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中 即通过数据元素物理存储的相邻关系来反映数据元素

随机推荐

  • vmware创建的虚拟机无法连接外网

    在我本机中使用vmware创建虚拟机后 安装 docker 时使用wget 命令下载docker的安装文件 报错找不到资源 然后通过ping www baidu com 发现也ping不通 经过一番折腾可以访问外网了 将步骤记录下来 1 设
  • vue-cli2 ,区分开发环境,测试环境,生成环境的方法

    项目背景 为了适应vue cli2环境搭建需求 需要动态配置开发 测试 生产三种对应域名及其及打包命令 使用cross env可以让配置环境更加清晰明了还好管理 1 安装 cross env npm install save dev cro
  • arccotx图像在matlab,反三角函数图像与性质是什么?

    01 反三角函数是反正弦arcsinx 反余弦arccosx 反正切arctanx 反余切arccotx 反正割arcsecx 反余割arccscx这些函数的统称 各自表示其反正弦 反余弦 反正切 反余切 反正割 反余割为x的角 三角函数的
  • 2021第十四届全国大学生信息安全竞赛WP(CISCN)-- pwn部分

    CISCN 2021 WP 概述 ciscn 2021 lonelywolf ciscn 2021 pwny 第一种利用方式 第二种利用方式 ciscn 2021 silverwolf ciscn 2021 game 总结 概述 作为学习不
  • PeopleSoft PeopleTools Meta-Tables

    This is an attempt to list PeopleSoft meta tables along with some kind of description for every table The list will be b
  • 手把手教你使用vue2搭建微前端micro-app

    简述 本文主要讲述新手小白怎么搭建micro app 几乎是每一步都有截图说明 上手应该很简单 研究背景 这段时间在网上找了很多有关微前端相关的知识 起初本来是想着先搭建一个single spa 但是奈何网上能找到的内容都是千篇一律 我也是
  • 时钟芯片DS1302的原理及使用

    一 描述 DS1302时钟芯片是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片 它可以对年 月 日 周 时 分 秒进行计时 且具有闰年补偿等多种功能 DS1302芯片包含一个用于存储实时时钟 日历的 31 字节的静态
  • Installing with get-pip.py

    本文转载至 https pip readthedocs io en stable installing 由于 Mac OS X 下默认没有安装 pip 可以使用如上的脚本来安装 pip 安装方法很简单 1 下载 get pip py htt
  • libtorch编译C++版本

    libtorch编译C 版本 一 下载pytorch源码 git clone https github com pytorch pytorch git cd pytorch git submodule sync git submodule
  • 如何配置Kubernetes仪表板dashboard支持http方式并使用ingress-nginx代理访问实践

    公众号关注 WeiyiGeek 设为 特别关注 每天带你玩转网络安全运维 应用开发 物联网IOT学习 本章目录 配置 Kubernetes dashboard 以支持 http 方式访问 原文地址 https blog weiyigeek
  • centos6、centos7 脚本管理rsync服务状态

    1 环境准备 centos6 虚拟机 centos7 虚拟机 2 centos6 编写脚本 分析脚本管理的逻辑 centos6中管理 服务的脚本都是在 etc init d 目录下的 我们要在此目录下创建一个管理的脚本 centos系统是通
  • kafka配置之service.properties文件

    Server Basics 唯一标识一个broker broker id 1 Socket Server Settings 绑定服务监听的地址和端口 要填写hostname i 出来的地址 否则可能会绑定到127 0 0 1 produce
  • SQL-labs的第32关——union联合查询攻击 宽字节注入(Get)

    绕过向危险字符添加斜杠的自定义筛选器 注意只要出现危险字符就会自动添加斜杆 这里的危险字符只有单引号 所以只要写了单引号 就要干扰斜杠 1 判断闭合方式 输入语句 id 1 返回页面如下 按理来说 它这次是无法正常返回内容的 但是它正常返回
  • 全面解析Web3社交:深层次的链上社交将成为可能

    Web3是什么 Web3是一个没有既定定义的总括性术语 这个词包含了由社区和用户所有权驱动的去中心化的想法和愿景 Him Gajria写的一篇关于Web3 0的文章说得很好 Web1是只读的 网络托管内容 人们可以消费内容 但不能分享 We
  • matlab高代求商与余式,matlab求商取余remmod区别

    当除数和被除数同为正时 gt gt rem 10 91 ans 10 gt gt mod 10 91 ans 10 当除数和被除数同为负时 gt gt rem 10 91 ans 10 gt gt mod 10 91 ans 10 当除数和
  • 数字一阶低通滤波器立体解析

    一阶惯性环节 一个独立储能元件和一个耗能元件的组合 就可以构成一个惯性环节 下图就是一个常见的电路 一阶滤波电路 也可以叫一阶惯性环节 为什么叫一阶惯性环节呢 是因为当输入信号发生突变的时候 输出信号不能突变 只能按照指数规律逐渐变化 是不
  • react基础05--react-router 路由

    react基础05 react router 路由 1 介绍 2 方法 案例 react router 路由的基本使用 路由传参 Switch 路由匹配 嵌套路由 3 注意事项 4 说明 1 介绍 react基础04 redux 管理数据
  • jQuery实现各种轮播图

    目录 无限循环滚动 百叶窗 轮播一 轮播二 轮播三 无限循环滚动 margin 0 padding 0 div width 1120px height 300px border 1px solid 000 margin 100px auto
  • 推荐5个非常强大的ChatGPT浏览器插件|你的生产力提高工具

    近期 ChatGPT变得越来越热门 为此 许多浏览器插件也随之问世 这些基于ChatGPT的浏览器插件大大提高了ChatGPT的能力 使得我们能够更高效地在平时的上网 工作和学习中获得帮助 从而节省了大量时间 今天我来给大家介绍几款非常好用
  • .asp中.cs文件路径在哪_ASP.NET实战007:MVC解决跨域请求问题详解

    前面刚说到Vue实战057 前端解决跨域问题详解 今天顺便把ASP NET MVC的跨域解决方案也分享下 什么是跨域问题这里就不在复述了 前面已经解释了很多次了 需要了解的可以参考Vue实战057 前端解决跨域问题详解 这里主要说下在ASP