Asp.net Core 跨域配置

 

一般情况WebApi都是跨域请求,没有设置跨域一般会报以下错误

 No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:48057' is therefore not allowed access.

ASP.net Core 跨域有两种,全局和区域

全局跨域:

打开Startup.cs文件.在ConfigureServices方法中添加以下代码

1.配置跨域处理,允许所有来源:

      //配置跨域处理,允许所有来源:
services.AddCors(options =>
options.AddPolicy("自定义的跨域策略名称",
p => p.AllowAnyOrigin())
);

2.允许一个或多个具体来源:

//允许一个或多个具体来源:
services.AddCors(options =>
{
// Policy 名稱 CorsPolicy 是自訂的,可以自己改
options.AddPolicy("跨域规则的名称", policy =>
{
// 設定允許跨域的來源,有多個的話可以用 `,` 隔開
policy.WithOrigins("http://localhost:3000","http://127.0.0.1")
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
});
});

以上两种按需求选择一种即可.

Configure方法中添加以下代码

app.UseCors("自定义的跨域策略名称");//必须位于UserMvc之前 
app.UseMvc();

局部跨域第一种用法:

1.ConfigureServices方法不变,删去Configure中的app.UseCors()方法

2.在Controller顶部或者Action方法顶部加上[EnableCors("自定义的跨域策略名称")]特性,例如

[EnableCors("自定义的跨域策略名称")]
[Route("api/[controller]")]
public class ContactController : Controller

以上就可实现指定某个controller或者action跨域

禁止跨域:

禁止跨域在Controller或者Action加上[DisableCors]特性即可禁止跨域

[HttpGet("{id}")]
[DisableCors]
public string Get(int id)
{
  return "value";
}

参考文章:https://www.cnblogs.com/xiaoliangge/p/7650465.html

.net core入门-跨域访问配置的更多相关文章

  1. Asp.Net SignalR 使用记录 技术回炉重造-总纲 动态类型dynamic转换为特定类型T的方案 通过对象方法获取委托_C#反射获取委托_ .net core入门-跨域访问配置

    Asp.Net SignalR 使用记录   工作上遇到一个推送消息的功能的实现.本着面向百度编程的思想.网上百度了一大堆.主要的实现方式是原生的WebSocket,和SignalR,再次写一个关于A ...

  2. Web Api跨域访问配置及调用示例

    1.Web Api跨域访问配置. 在Web.config中的system.webServer内添加以下代码: <httpProtocol> <customHeaders> &l ...

  3. geoserver源码学习与扩展——跨域访问配置

    在 geoserver源码学习与扩展——restAPI访问 博客中提到了geoserver的跨域参数设置,本文详细讲一下geoserver的跨域访问配置. geoserver的跨域访问依赖java-p ...

  4. SpringBoot 优雅配置跨域多种方式及Spring Security跨域访问配置的坑

    前言 最近在做项目的时候,基于前后端分离的权限管理系统,后台使用 Spring Security 作为权限控制管理, 然后在前端接口访问时候涉及到跨域,但我怎么配置跨域也没有生效,这里有一个坑,在使用 ...

  5. angualr跨域访问配置

    浏览器对于javascript的同源策略的限制,例如a.cn下面的js不能调用b.cn中的js,对象或数据(因为a.cn和b.cn是不同域),所以跨域就出现了: 简单的解释就是相同域名,端口相同,协议 ...

  6. Tomcat跨域访问配置

    下载cors-filter-1.7.jar,java-property-utils-1.9.jar这两个库文件,放到Tomcat的lib目录下. D:\Program Files\Tomcat-7.0 ...

  7. ajax跨域访问 java controller 和 cxf(webservice) 配置方式(CORS)

    1. controller跨域访问,配置方式 重点在这里: <mvc:cors> <mvc:mapping path="/*" allowed-origins=& ...

  8. 解决ajax跨域访问sessionid不一致问题

    根据浏览器的保护规则,跨域的时候我们创建的sessionId是不会被浏览器保存下来的,这样,当我们在进行跨域访问的时候,我们的sessionId就不会被保存下来,也就是说,每一次的请求,服务器就会以为 ...

  9. Asp.Net WebApi+Microsoft.AspNet.WebApi.Core 启用CORS跨域访问

    WebApi中启用CORS跨域访问 1.安装 Nugget包Microsoft.AspNet.WebApi.Cors This package contains the components to e ...

随机推荐

  1. css流星 效果

    style: .loding {     width: 100%;     height: 100%;      }   .bg{     width: 100%;     height: 100%; ...

  2. 第11章 UDP:用户数据报协-----读书笔记

    1.分片应用程序只关心IP数据报的长度,如果它超过MTU值,那么就要对数据包进行分片. 2.UDP首部字段图: (16位源端口号+16位目端口号+16位UDP长度+16位UDP校验和+数据) 3.UD ...

  3. Java方法之参数传递机制

    目录 Java方法之参数传递机制 基本数据类型 引用数据类型 综合练习 总结 Java方法之参数传递机制 Java方法中如果声明了形参,在调用方法时就必须给这些形参指定参数值,实际传进去的这个值就叫做 ...

  4. Linux系统:Centos7环境搭建Redis单台和哨兵集群环境

    本文源码:GitHub·点这里 || GitEE·点这里 一.环境和版本 Linux:centos7 三台 三台Linux服务 192.168.72.129 192.168.72.130 192.16 ...

  5. Python 调用 ES、Solr、Phoenix

    #!/usr/bin/env python # -*- coding:utf-8 -*- # ************************************* # @Time : 2019/ ...

  6. 一种简单实现Redis集群Pipeline功能的方法及性能测试

    上一篇文章<redis pipeline批量处理提高性能>中我们讲到redis pipeline模式在批量数据处理上带来了很大的性能提升,我们先来回顾一下pipeline的原理,redis ...

  7. 并发容器之ConcurrentHashMap(JDK 1.8版本)

    1.ConcurrentHashmap简介 在使用HashMap时在多线程情况下扩容会出现CPU接近100%的情况,因为hashmap并不是线程安全的,通常我们可以使用在java体系中古老的hasht ...

  8. opencv-python图像处理基础(一)

    #一.读取图像数据 import cv2 img=cv2.imread("d:/image0.JPG") #读取图片数据 print(img) cv2.imshow('image' ...

  9. android笔记--Intent和IntentFilter详解

    本文转载自:https://www.cnblogs.com/liushengjie/archive/2012/08/30/2663066.html 本文转载自:https://www.cnblogs. ...

  10. docker 网络设置概述

    docker有3种网络: 使用命令docker network ls,执行结果如下. NETWORK ID NAME DRIVER SCOPE 82e8822065c7 bridge bridge l ...