servicestack ServiceStack CORS功能,servicestack,cors,servicestack,Cors" /> servicestack ServiceStack CORS功能,servicestack,cors,servicestack,Cors" />

servicestack ServiceStack CORS功能

servicestack ServiceStack CORS功能,servicestack,cors,servicestack,Cors,使用新的服务实现,我是否必须为所有服务提供选项方法 使用“我的所有服务”当前使用的旧ServiceBase方法,选项返回OK,而不返回Access Control Allow Origin标头 下面是一个例子: HelloService使用服务 GoodbyeService使用ServiceBase,因为ServiceStack的旧API强制使用基于接口的API,它只支持GET、POST、PUT、DELETE和PATCH请求。处理选项请求我们本质上是一个权宜之计,它只有一个实现来发出配置的头并

使用新的服务实现,我是否必须为所有服务提供选项方法

使用“我的所有服务”当前使用的旧ServiceBase方法,选项返回OK,而不返回Access Control Allow Origin标头

下面是一个例子:

HelloService使用服务


GoodbyeService使用ServiceBase

,因为ServiceStack的旧API强制使用基于接口的API,它只支持GET、POST、PUT、DELETE和PATCH请求。处理选项请求我们本质上是一个权宜之计,它只有一个实现来发出配置的头并关闭响应

使用不再有任何限制,因为您现在可以通过在iSeries设备上使用任何HTTP谓词的名称来处理它。现在,您可以单独处理特定请求的所有谓词。但现在它不再为您隐式处理,需要一个实现来通过服务处理它

您可以继续处理所有选项请求,方法是在选项请求到达服务之前,使用任意一个选项来进行常规处理

例如


(请原谅我的无知,我是ServiceStack的新手。)此代码段出现在此处和中,但我似乎无法将其编译。
RequestFilters.Add(…)
方法需要一个
ServiceStack.ServiceHost.IHttpRequest
和一个
ServiceStack.ServiceHost.IHttpResponse
,但这些接口似乎没有分别声明
.method()
.EndServiceStackRequest()
方法。我正在使用
使用ServiceStack.ServiceHost我缺少什么?@AndrewCr使用
httpReq.HttpMethod
代替
httpReq.Method
httpRes.EndRequest()
代替
httpRes.EndServiceStackRequest()
示例链接不再工作。
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();
});