新增允许跨域

This commit is contained in:
2025-01-20 21:31:46 +08:00
parent 223ed5b215
commit 7fdaf42695

View File

@@ -29,7 +29,7 @@ class ShelfWebServer implements WebServer {
final requestSpanId = request.context['request_span_id'] as String; final requestSpanId = request.context['request_span_id'] as String;
final requestParentSpanId = final requestParentSpanId =
request.context['request_parent_span_id'] as String?; request.context['request_parent_span_id'] as String?;
logger.info('| 请求路径: ${request.requestedUri}', logger.info('| 请求路径: ${request.method} ${request.requestedUri}',
tag: tag, tag: tag,
traceId: requestId, traceId: requestId,
spanId: requestSpanId, spanId: requestSpanId,
@@ -205,17 +205,28 @@ class ShelfWebServer implements WebServer {
} else { } else {
args = [req]; args = [req];
} }
Response response = await im.invoke(v.simpleName, args).reflectee as Response; Response response =
await im.invoke(v.simpleName, args).reflectee as Response;
//判断contenttype是否定义 //判断contenttype是否定义
var t = response.headers["content-type"]; // var t = response.headers["content-type"];
// print(t);
Map<String, String> headers = {...response.headers};
// if (t == null) {
//设置默认contenttype
// response = response.change(headers: {
// ...response.headers,
// "content-type": m.reflectee.responseType.type
// });
// } else {
headers['Access-Control-Allow-Origin'] = '*';
headers['Access-Control-Allow-Headers'] =
'Content-Type,X-Span-ID,X-Trace-ID';
headers['Access-Control-Allow-Methods'] =
'GET, POST, PUT, DELETE, OPTIONS';
headers["content-type"] = m.reflectee.responseType.type;
if (t == null) { // }
//设置默认contenttype response = response.change(headers: headers);
response = response.change(headers: {
...response.headers,
"content-type": m.reflectee.responseType.type
});
}
return response; return response;
}); });
@@ -234,7 +245,21 @@ class ShelfWebServer implements WebServer {
print("回调函数类型错误 需要 WebSocketHandler "); print("回调函数类型错误 需要 WebSocketHandler ");
} }
} else { } else {
_router.add(method.name, path, handler); if (method.name == "ALL") {
_router.all(path, handler);
} else {
_router.add(method.name, path, handler);
}
if (method.name != "OPTIONS") {
_router.options(path, (r) {
return Response.ok('', headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': 'Content-Type,X-Span-ID,X-Trace-ID',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
});
});
}
} }
} }
} }