Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 如何在Redstone拦截器中添加CORS标头?_Dart_Redstone.dart - Fatal编程技术网

Dart 如何在Redstone拦截器中添加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

我试图将CORS头添加到传入请求中,但我注意到,
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()
返回具有正确标题的响应