服务楼CORS功能(ServiceStack CORS Feature)

2019-07-04 15:15发布

使用新的服务实现,我一定要为我所有的服务的选项的方法?

使用旧ServiceBase方法,这我的所有服务目前使用的,选项,而访问控制允许来源头部返回OK。

下面是一个例子:

https://github.com/JonCanning/SSCors

HelloService的使用服务

GoodbyeService使用ServiceBase

Answer 1:

由于ServiceStack的旧API执行基于接口的API它仅支持GET,POST,PUT,DELETE,PATCH请求。 处理选项要求我们基本上是一个权宜变通是有一个单一的实现,只是发出组态的页眉和关闭的响应。

随着ServiceStack的新API不再有,你现在可以通过只用你的IService它的名字处理任何HTTP动词任何限制。 现在,这可以让你处理所有动词的具体要求独立。 但现在它不再是隐式地处理你,需要一个实现通过服务来处理它。

您可以继续通过使用任何的处理所有选项的请求预先定义的钩子到达服务之前,一般处理。

Plugins.Add(new CorsFeature()); //Registers global CORS Headers

this.RequestFilters.Add((httpReq, httpRes, requestDto) => {
   //Handles Request and closes Responses after emitting global HTTP Headers
    if (httpReq.HttpMethod == "OPTIONS") 
        httpRes.EndRequest();
});


文章来源: ServiceStack CORS Feature