使用新的Service实现,我是否必须为我的所有服务提供Options方法?
使用我的所有服务当前使用的旧ServiceBase方法,OPTIONS在没有Access-Control-Allow-Origin标头的情况下返回OK.
这是一个例子:
https://github.com/JonCanning/SSCors
HelloService使用Service
GoodbyeService使用ServiceBase
由于ServiceStack的旧API强制执行基于接口的API,因此它仅支持GET,POST,PUT,DELETE,PATCH请求.处理OPTION请求我们本质上是一个临时解决方案,它只有一个实现来发出配置的头并关闭响应.
使用ServiceStack的新API,不再有任何限制,因为您现在可以通过在IService上使用其名称来处理任何HTTP Verb.现在,您可以单独处理特定请求的所有动词.但现在它不再为您隐式处理,需要一个实现来通过服务来处理它.
您可以使用任何预定义的挂钩继续处理所有OPTIONS请求,以便在它到达服务之前对其进行一般处理.
例如
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();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4579 次 |
| 最近记录: |