Dart 如何在Redstone拦截器中添加CORS标头?
我试图将CORS头添加到传入请求中,但我注意到,Dart 如何在Redstone拦截器中添加CORS标头?,dart,redstone.dart,Dart,Redstone.dart,我试图将CORS头添加到传入请求中,但我注意到,app.response.headers是一个不可变的映射,app.request.response即使出现在文档示例中也不存在。因此,对于选项请求,我使用一个新的Shelf响应进行响应,但是我找不到一种方法来向实际请求的响应添加任何新的头。有什么想法吗 @app.Interceptor(r)/api/*,chainIdx:1) corsInterceptor(){ 如果(app.request.method==“选项”){ var respons
app.response.headers
是一个不可变的映射,app.request.response
即使出现在文档示例中也不存在。因此,对于选项
请求,我使用一个新的Shelf
响应进行响应,但是我找不到一种方法来向实际请求的响应添加任何新的头。有什么想法吗
@app.Interceptor(r)/api/*,chainIdx:1)
corsInterceptor(){
如果(app.request.method==“选项”){
var response=newshelf.response.ok(“,headers:headers”);
应用程序链中断(状态代码:HttpStatus.OK,响应值:响应);
}否则{
//app.request.response不可用
app.request.response.headers.add('Access-Control-Allow-Origin','*');
app.chain.next();
}
}
我在拦截器文档中的第一段代码中找到了修复程序…:)
@app.Interceptor(r)/api/*,chainIdx:1)
corsInterceptor(){
如果(app.request.method==“选项”){
var response=newshelf.response.ok(“,headers:headers”);
应用程序链中断(状态代码:HttpStatus.OK,响应值:响应);
}否则{
app.chain.next(()=>app.response.change(headers:headers));
}
}
app.chain.next()
可以将回调作为参数,该参数应返回响应
对象。在本例中,app.response.change()
返回具有正确标题的响应