diff --git a/lib/base/webserver/impl/ShelfWebServer.dart b/lib/base/webserver/impl/ShelfWebServer.dart index c7439be..0d4bc76 100644 --- a/lib/base/webserver/impl/ShelfWebServer.dart +++ b/lib/base/webserver/impl/ShelfWebServer.dart @@ -29,7 +29,7 @@ class ShelfWebServer implements WebServer { final requestSpanId = request.context['request_span_id'] as String; final requestParentSpanId = request.context['request_parent_span_id'] as String?; - logger.info('| 请求路径: ${request.requestedUri}', + logger.info('| 请求路径: ${request.method} ${request.requestedUri}', tag: tag, traceId: requestId, spanId: requestSpanId, @@ -205,17 +205,28 @@ class ShelfWebServer implements WebServer { } else { 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是否定义 - var t = response.headers["content-type"]; + // var t = response.headers["content-type"]; + // print(t); + Map 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: { - ...response.headers, - "content-type": m.reflectee.responseType.type - }); - } + // } + response = response.change(headers: headers); return response; }); @@ -234,7 +245,21 @@ class ShelfWebServer implements WebServer { print("回调函数类型错误 需要 WebSocketHandler "); } } 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', + }); + }); + } } } }