在ASP.NET Web API中实现CORS(跨域资源共享)
2024-10-19 02:22:31
默认情况下,是不允许网页从不同的域访问服务器资源的,访问遵循"同源"策略的原则。
会遇到如下的报错:
XMLHttpRequest cannot load http://localhost:49705//api/products. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:49729' is therefore not allowed access.
初始或源域名是:http://localhost:49729/
请求产品的域名是:http://localhost:49705//api/products
由于端口号不一致,所以,在"同源"策略下,服务器资源是被禁止访问的,会报错。
ASP.NET Web API为我们提供了实现CORS(跨域资源共享)的解决方案。
首先通过NuGet安装:microsoft asp.ent web api 202 cross-origin support
在WebConfig类中配置如下:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
... // Web API 路由
config.MapHttpAttributeRoutes(); //全局允许CROS
config.EnableCors(); config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
); }
}
在ApiController上设置CROS属性。
[EnableCorsAttribute("http://localhost:49729","*","*")]
public class ProductsController : ApiController
{
...
}
以上就实现了在ASP.NET Web API中的CROS。
最新文章
- java设计模式之中介者模式
- centos7.0安装后ifconfig无法使用
- Java处理Radius access-challenge
- oracle-5-的升级步骤
- Linux如何修改文件/文件夹内所有文件的权限
- 沉浸式学 Git
- JAVA 读取pdf文件
- Java解析和生成XML
- django: db howto - 1
- MySql截取DateTime字段的日期值
- mysql回想一下基础知识
- PAT乙级1006. 换个格式输出整数 (15)
- C#中try catch finally 用法
- 使用Fiddler完成Android和IOS手机抓包Https
- 解决time_wait过多
- 四、UI开发之核心基础——约束(实用)
- sublime 指定打开某文件的类型(text/plain)
- 题目1042:Coincidence(最长公共子序列 dp题目)
- eclipse插件之Findbugs、Checkstyle、PMD安装及使用
- 【CC2530强化实训03】定时器间隔定时实现按键长按与短按