2

YesodJSONサーバーのクライアントをangular.jsで作成しています。ヘッダートラフィックを調べると、ChromeがOPTIONSメソッドを送信しているようですが、ハンドラーはこれを拒否します。調査によると、次のようなものを返送する必要があります。

Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://source.com
Access-Control-Allow-Headers: Content-Type, *

makeApplication足場を見ると、それが私がたどりたい道の始まりであることがわかります。

makeApplication :: AppConfig DefaultEnv Extra -> IO Application
makeApplication conf = do
    foundation <- makeFoundation conf
    app <- toWaiAppPlain foundation
    return $ logWare app
  where
    logWare   = if development then logStdoutDev
                               else logStdout

当初は変更が必要だと思ってconfいましたが、OS環境を管理していることが理解できます。応答ヘッダーをグローバルに変更するための最も簡単な場所はどこですか?

4

1 に答える 1

2

おそらく最も簡単なことは、logWareに加えて別のミドルウェアを追加することです。

于 2012-12-07T04:07:09.703 に答える