2017-01-18 5 views
3

ハスケル初心者はここ!Haskell-Scotty:カスタムヘッダーを設定する(x-frame-options)

私のhaskell側のプロジェクトでは、scottyを使って動的に生成されたHTMLページを提供しています。問題は、「x-frame-options」ヘッダーが「SAMEORIGIN」に設定されているため、ページをiframe内で開くことができないことです。

どうすればそのヘッダを別のものに変更できますか?私はすべての回答にそのヘッダーを設定したいと思います。それを行うことができるミドルウェアはありますか?

ありがとうございます!

答えて

3

あなたはそれぞれの応答(Network.Waiで使用可能なneccesaryすべてのツール)にこのヘッダを追加し、独自のミドルウェアを定義することができます。

{-# LANGUAGE OverloadedStrings #-} 

import Network.Wai -- from the wai package 
import Web.Scotty hiding (options) 

addFrameHeader :: Middleware 
addFrameHeader = 
    modifyResponse (mapResponseHeaders (("X-Frame-Options", "whatever") :)) 

その後、あなたのスコッティのアプリケーションでそれを使用します。

main = scotty 6000 $ do 
    middleware addFrameHeader 
    get "/" (text "hello") 

curlでは、応答に含まれていることがわかります。

> curl --include localhost:6000 
HTTP/1.1 200 OK 
Transfer-Encoding: chunked 
Date: Thu, 19 Jan 2017 19:22:57 GMT 
Server: Warp/3.2.8 
X-Frame-Options: whatever 
Content-Type: text/plain; charset=utf-8 

hello 
+0

Exce llent!それはキーの魅力のように動作します!ありがとう – afcastano

関連する問題