From 7bff503ebb906d6bc2c682592beb3158c7a7b84c Mon Sep 17 00:00:00 2001 From: Bryan Richter Date: Sat, 14 Jan 2012 11:12:03 -0800 Subject: [PATCH] More robust parsing of Accept --- yesod-json/Yesod/Json.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yesod-json/Yesod/Json.hs b/yesod-json/Yesod/Json.hs index 78d394a9..e59a11a9 100644 --- a/yesod-json/Yesod/Json.hs +++ b/yesod-json/Yesod/Json.hs @@ -44,7 +44,7 @@ import qualified Blaze.ByteString.Builder.Char.Utf8 as Blaze import Data.Conduit (($$)) import Network.Wai (requestBody, requestHeaders) import Network.Wai.Parse (parseHttpAccept) -import qualified Data.ByteString as B +import qualified Data.ByteString.Char8 as B8 import Safe (headMay) instance ToContent J.Value where @@ -119,7 +119,7 @@ jsonOrRedirect r j = do if q then jsonToRepJson (J.toJSON j) else redirect r where - acceptsJson = maybe False ("application/json" `B.isPrefixOf`) + acceptsJson = maybe False ((== "application/json") . B8.takeWhile (/= ';')) . join . fmap (headMay . parseHttpAccept) . lookup "Accept" . requestHeaders