默认情况下,是不允许网页从不同的域访问服务器资源的,访问遵循"同源"策略的原则。

会遇到如下的报错:

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。

最新文章

  1. java设计模式之中介者模式
  2. centos7.0安装后ifconfig无法使用
  3. Java处理Radius access-challenge
  4. oracle-5-的升级步骤
  5. Linux如何修改文件/文件夹内所有文件的权限
  6. 沉浸式学 Git
  7. JAVA 读取pdf文件
  8. Java解析和生成XML
  9. django: db howto - 1
  10. MySql截取DateTime字段的日期值
  11. mysql回想一下基础知识
  12. PAT乙级1006. 换个格式输出整数 (15)
  13. C#中try catch finally 用法
  14. 使用Fiddler完成Android和IOS手机抓包Https
  15. 解决time_wait过多
  16. 四、UI开发之核心基础——约束(实用)
  17. sublime 指定打开某文件的类型(text/plain)
  18. 题目1042:Coincidence(最长公共子序列 dp题目)
  19. eclipse插件之Findbugs、Checkstyle、PMD安装及使用
  20. 【CC2530强化实训03】定时器间隔定时实现按键长按与短按

热门文章

  1. 使用 CasperJS 构建 Web 爬虫
  2. django中的view测试和models测试样例
  3. mavean项目的jar位置的影响
  4. FileSystemResource在Srping FrameWork 5中的变化
  5. CSS------如何让div中的div处于右下角
  6. ZooKeeper与Eureka对比
  7. 400+节点的 Elasticsearch 集群运维
  8. Swift map filter reduce 使用指南
  9. Java 多线程 - synchronize 关键字
  10. hdu 5203 && BC Round #37 1002