代码之家  ›  专栏  ›  技术社区  ›  Beingnin

如何从服务器端启用CORS?

  •  4
  • Beingnin  · 技术社区  · 7 年前

    这就是我在webAPI中启用CORS的方式

    namespace WebService.Controllers
    {
        [EnableCors(origins: "*", headers: "*", methods: "*")]
        public class TestController : ApiController
        {
            // Controller methods ...
        }
    }
    

    1 回复  |  直到 7 年前
        1
  •  4
  •   sideshowbarker Miguel Tomás    7 年前

    以下是对其工作原理的简要总结:浏览器是实施同一原产地政策和跨原产地限制的地方。具体来说,浏览器阻止前端JavaScript代码访问跨源请求的响应 除非 请求发送响应头的服务器 Access-Control-Allow-Origin

    换句话说,让浏览器放松同源策略的方法是让服务器使用 访问控制允许原点 标题,指示他们正在选择跨来源请求。

    一个有助于说明其工作原理的例子是一个简单的交叉原点 POST . 只要是交叉原点 CORS preflight OPTIONS request ,浏览器将继续并发出请求,甚至跨原点。以及 岗位 发送到将继续并接受它,然后发送响应。

    然后发生的是浏览器的跨源限制,因为如果出现这种情况 岗位 访问控制允许原点 浏览器不允许前端代码访问响应(即使服务器接受 岗位

    无论如何,我希望以上内容有助于澄清在服务器中启用CORS支持实际上意味着什么,它有什么影响,以及实际的策略执行是由浏览器执行的。

    CORS飞行前 选项 .

    除非服务器明确指示(在其对预飞行的响应中),否则甚至可以将自定义标头发送到服务器 选项