1
0
forked from GitHub/gf-core

Cloud & PGF service: use Content-Type application/json for JSON output

This is in accordance with RFC 4627. http://tools.ietf.org/html/rfc4627
Use application/javascript for JSONP output.
This commit is contained in:
hallgren
2013-07-29 16:05:54 +00:00
parent ecfcaa5395
commit 27da46a79d
2 changed files with 24 additions and 22 deletions

View File

@@ -167,11 +167,11 @@ outputJSONP = outputEncodedJSONP . encode
outputEncodedJSONP :: String -> CGI CGIResult
outputEncodedJSONP json =
do mc <- getInput "jsonp"
let str = case mc of
Nothing -> json
Just c -> c ++ "(" ++ json ++ ")"
setHeader "Content-Type" "text/javascript; charset=utf-8"
outputStrict $ UTF8.encodeString str
let (ty,str) = case mc of
Nothing -> ("json",json)
Just c -> ("javascript",c ++ "(" ++ json ++ ")")
ct = "application/"++ty++"; charset=utf-8"
outputStrict ct $ UTF8.encodeString str
outputPNG :: BS.ByteString -> CGI CGIResult
outputPNG x = do
@@ -186,18 +186,16 @@ outputBinary x = do
outputFPS x
outputHTML :: String -> CGI CGIResult
outputHTML x = do
setHeader "Content-Type" "text/html; charset=utf-8"
outputStrict $ UTF8.encodeString x
outputHTML = outputStrict "text/html; charset=utf-8" . UTF8.encodeString
outputPlain :: String -> CGI CGIResult
outputPlain x = do
setHeader "Content-Type" "text/plain; charset=utf-8"
outputStrict $ UTF8.encodeString x
outputPlain = outputStrict "text/plain; charset=utf-8" . UTF8.encodeString
outputStrict :: String -> CGI CGIResult
outputStrict x | x == x = do setXO ; output x
| otherwise = fail "I am the pope."
outputStrict :: String -> String -> CGI CGIResult
outputStrict ct x | x == x = do setHeader "Content-Type" ct
setXO
output x
| otherwise = fail "I am the pope."
setXO = setHeader "Access-Control-Allow-Origin" "*"
-- https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS