跨域是指在浏览器的同源策略下导致前端和接口部署在不同域下导致无法直接访问的问题。

  针对跨域有多种解决方案常见的有:

  JSNOP:

   可参考Jquery实现,缺点是需要后端支持;

    Access-Control-Allow-Domain:

   不需要前端处理,后端通过配置响应头信息即可实现;

  

    <system.webServer>
<httpProtocol>
<!--跨域处理头部信息-->
<customHeaders>
<remove name="X-Powered-By" />
<add name="Access-Control-Allow-Headers" value="X-XSRF-TOKEN,Authorization" />
<add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS" />
<add name="Access-Control-Allow-Domain" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>

   如果是经典模式,<system.webServer>改为system.web即可

   

  Access-Control-Allow-Headers:允许请求携带的自定义头
  
  Access-Control-Allow-Methods:允许请求的方法
  
  Access-Control-Allow-Domain:允许访问域名,其中*代表所有,部分会不支持*号,建议返回指定站点的域名。

  
  通过配置的方式容易暴漏自己的所有对接域,不方便,每次配置后都需要重启站点。.NET中我们可以通过实现IHttpModul(https://www.cnblogs.com/wlhai/articles/10917191.html),注册应用请求结束是事件,实现自定义响应允许域信息。
  
  前端是请求接口时,如果是不同域的会先发送一个OPTIONS请求检查应用是否允许本域访问,允许后才会继续发送一个正式的请求。

Asp.net之实现自定义跨域的更多相关文章

  1. ASP.NET MVC 实现AJAX跨域请求方法《1》

    ASP.NET MVC 实现AJAX跨域请求的两种方法 通常发送AJAX请求都是在本域内完成的,也就是向本域内的某个URL发送请求,完成部分页面的刷新.但有的时候需要向其它域发送AJAX请求,完成数据 ...

  2. 基于.Net Framework 4.0 Web API开发(5):ASP.NET Web APIs AJAX 跨域请求解决办法(CORS实现)

    概述:  ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.但是在使用API的时候总会遇到跨域请求的问题,特 ...

  3. ASP.NET MVC 实现 AJAX 跨域请求

    ASP.NET MVC 实现AJAX跨域请求的两种方法 和大家分享下Ajax 跨域的经验,之前也找了好多资料,但是都不行,后来看到个可行的修改了并测试下 果然OK了   希望对大家有所帮助! 通常发送 ...

  4. asp.net core webapi之跨域(Cors)访问

    这里说的跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被当作 ...

  5. 【转载】ASP.NET MVC设置允许跨域访问

    默认情况下,浏览器端发送Ajax请求一般被禁止跨域访问,如A域名网站访问B域名网站的请求会被终止,在ASP.NET MVC项目中,我们可以配置相应的设置项,允许网站的接口跨域访问,主要需要设置Acce ...

  6. ASP.NET MVC中设置跨域

    ASP.NET MVC中设置跨域 1.什么是跨域请求 js禁止向不是当前域名的网站发起一次ajax请求,即使成功respone了数据,但是你的js仍然会报错.这是JS的同源策略限制,JS控制的并不是我 ...

  7. js基础 js自执行函数、调用递归函数、圆括号运算符、函数声明的提升 js 布尔值 ASP.NET MVC中设置跨域

    js基础 目录 javascript基础 ESMAScript数据类型 DOM JS常用方法 回到顶部 javascript基础 常说的js包括三个部分:dom(文档document).bom(浏览器 ...

  8. ASP.NET Core Web API 跨域(CORS) Cookie问题

    身为一个Web API,处理来自跨域不同源的请求,是一件十分合理的事情. 先上已有的文章,快速复制粘贴,启用CORS: Microsoft:启用 ASP.NET Core 中的跨域请求 (CORS) ...

  9. 第十四节:Asp.Net Core 中的跨域解决方案(Cors、jsonp改造、chrome配置)

    一. 整体说明 1. 说在前面的话 早在前面的章节中,就详细介绍了.Net FrameWork版本下MVC和WebApi的跨域解决方案,详见:https://www.cnblogs.com/yaope ...

随机推荐

  1. 元素命名空间中的“MvcBuildViews”无效

    原文:元素命名空间中的"MvcBuildViews"无效 症状描述: VS2010打开项目时提示:"元素 命名空间"http://schemas.microso ...

  2. Win10 UWP版《芒果TV》v2.4.0直播超女,芒果台综艺一网打尽

    Win10 UWP版<芒果TV>直播超女,芒果台综艺一网打尽 Win10版UWP<芒果TV>自2015年9月登录商店以来,一直在持续更新,积极改进,拥有芒果台视频的独家点播和直 ...

  3. Windows 10 UWP 部署

      原文  http://youthlin.com/20151105.html 我们知道VS连接手机可以直接部署到手机里,但平板貌似无法这样干,平板与电脑连接没有丝毫反应……那么想看VS里写的uwp应 ...

  4. DOTNET CORE DATETIME在LINUX与WINDOWS时间不一致

    .net core项目,部署到CentOS上的时候,发现DateTime.Now获取的时间与Windows不一致,主要是时区不一致. static void Main(string[] args) { ...

  5. xen学习(一)

    添加镜像源 [root@xen xen]# cat /etc/yum.repos.d/xen.repo [xen] name=xenserver baseurl=http://mirrors.163. ...

  6. “流”的5个例子(TStream是抽象类,写到文件里和内存里,都是一样的)

    http://www.cnblogs.com/keyvip/category/270215.html

  7. UILabel实现自适应宽高需要注意的地方

    需求如下:   需要显示2行文字,宽度为 SCREEN_Width - 40 高度为两行文本的自适应高度 需要在此UILabel 下面添加imageView , 因此UIlabel 的高度需要准确,不 ...

  8. EF 6.0 Code First 迁移MySql数据库

    一.准备工作     使用NUGET安装Entity Framework 6,下载MySql Connector/Net 6.9.5   二.创建实体     我们在下面创建了两个类(博客和文章),并 ...

  9. C语言-main方法的两个参数是干什么的?

    大家都知道C语言的main方法怎么写的吧!但你们知道mian方法里的参数的含义吗? 代码如下: int main(int argc,char *argv[]){ //argc是传进的参数个数 //ar ...

  10. 【记录】Mysql数据库更新主键自增

    语法:id从1000开始自增: ALTER TABLE 表名 AUTO_INCREMENT = 1000;