mirror of https://github.com/usememos/memos.git
fix: add nil check for AnyResponse in WrapUnary method to prevent caching issues
This commit is contained in:
parent
b0558824c4
commit
b32cba35c6
|
|
@ -5,6 +5,7 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"log/slog"
|
||||
"reflect"
|
||||
"runtime/debug"
|
||||
|
||||
"connectrpc.com/connect"
|
||||
|
|
@ -56,7 +57,7 @@ func (*MetadataInterceptor) WrapUnary(next connect.UnaryFunc) connect.UnaryFunc
|
|||
|
||||
// Prevent browser caching of API responses to avoid stale data issues
|
||||
// See: https://github.com/usememos/memos/issues/5470
|
||||
if resp != nil && resp.Header() != nil {
|
||||
if !isNilAnyResponse(resp) && resp.Header() != nil {
|
||||
resp.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
|
||||
resp.Header().Set("Pragma", "no-cache")
|
||||
resp.Header().Set("Expires", "0")
|
||||
|
|
@ -66,6 +67,14 @@ func (*MetadataInterceptor) WrapUnary(next connect.UnaryFunc) connect.UnaryFunc
|
|||
}
|
||||
}
|
||||
|
||||
func isNilAnyResponse(resp connect.AnyResponse) bool {
|
||||
if resp == nil {
|
||||
return true
|
||||
}
|
||||
val := reflect.ValueOf(resp)
|
||||
return val.Kind() == reflect.Ptr && val.IsNil()
|
||||
}
|
||||
|
||||
func (*MetadataInterceptor) WrapStreamingClient(next connect.StreamingClientFunc) connect.StreamingClientFunc {
|
||||
return next
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue