Kenta Inoue
どなたかservant-elmを使っている方はいらっしゃいますでしょうか?
servant-elmで生成したelmのエンコーダ、デコーダを使ってlocalhostでやりとりをしようとしていて困ったことがありました。
まず、servantで書いたサーバ側のURLが でelmで書いたクライアント側が なので、CORSが働いてうまく作用しないことがわかりました。(WebブラウザはSafariです)
そこで、サーバ側のHaskellコードでwai-corsライブラリを使ってCORSの設定としてSimpleCorsResoucePolicyを設定したところ、
GETメソッドは通るようになりましたが、なぜかPOSTメソッドが通らず、
Preflight response is not successful
XMLHttpRequest cannot load http://localhost:8080/xxx due to access control check
とエラーメッセージが表示されてどう対処していいのか分からない状態です。
一応、サーバにターミナルのcurlコマンドで直接アクセスするとPOSTメソッドもうまくいくので、サーバ内部で発生したエラーではなさそうです。
原因はおそらくCORS回りだと思うのですが、SimpleCorsResoucePolicyは"GET", "HEAD", "POST"メソッドを許容するような設定のはずなので、GETだけうまくいってPOSTがうまくいかない理由が分からないです。
何かアドバイスいただけないでしょうか?
servant-elmで生成したelmのエンコーダ、デコーダを使ってlocalhostでやりとりをしようとしていて困ったことがありました。
まず、servantで書いたサーバ側のURLが
そこで、サーバ側のHaskellコードでwai-corsライブラリを使ってCORSの設定としてSimpleCorsResoucePolicyを設定したところ、
GETメソッドは通るようになりましたが、なぜかPOSTメソッドが通らず、
Preflight response is not successful
XMLHttpRequest cannot load http://localhost:8080/xxx due to access control check
とエラーメッセージが表示されてどう対処していいのか分からない状態です。
一応、サーバにターミナルのcurlコマンドで直接アクセスするとPOSTメソッドもうまくいくので、サーバ内部で発生したエラーではなさそうです。
原因はおそらくCORS回りだと思うのですが、SimpleCorsResoucePolicyは"GET", "HEAD", "POST"メソッドを許容するような設定のはずなので、GETだけうまくいってPOSTがうまくいかない理由が分からないです。
何かアドバイスいただけないでしょうか?