我正在编写服务器端 Dart,并且正在使用 http_server 和路由包。我想为每个请求运行一个过滤器。
在这种特殊情况下,我想添加 CORS header 。
这是我到目前为止的代码:
new Router(server)
..serve('/register', method: 'POST')
.transform(new HttpBodyHandler()).listen(registerPlayer)
..serve('/matches', method: 'GET')
.transform(new HttpBodyHandler()).listen(listMatches)
..serve('/matches', method: 'POST')
.transform(new HttpBodyHandler()).listen(createMatch)
最佳答案
使用 filter
与 RegExp
满足每个请求。
new Router(server)
..filter(new RegExp(r'^.*$'), addCorsHeaders)
..serve('/register', method: 'POST')
.transform(new HttpBodyHandler()).listen(registerPlayer)
..... more handlers
过滤器必须是 Future<bool> filter(HttpRequest req)
:
Future<bool> addCorsHeaders(HttpRequest req) {
log.fine('Adding CORS headers');
req.response.headers.add('Access-Control-Allow-Origin', '*');
return new Future.sync(() => true);
}
关于dart - 如何使用 Dart 和路由包将过滤器应用于每个请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19458671/