LoginSignup
0
0

PHP でヘッダーを 'Content-Type':'application/json' に指定して POST したら意図しないリダイレクトでデータが消えて困った話

Posted at

環境

  • PHP
  • Apache

解決策

POST 先に指定している URI の末尾にスラッシュをつける。

localhost:3000/json -> localhost:3000/json/

理由

Apache では設定によって URI に Trailing Slash と呼ばれる末尾のスラッシュが無い場合、末尾のスラッシュが存在する URI へリダイレクトさせられます。

このリダイレクトによって 'Content-Type':'application/json' 指定で POST した値が消えていました。

この設定は、 DirectorySlash ディレクティブ と呼ばれるものです。

雑記

php:input の値が空で、 以下の記事が有力な手がかりだったが、解決せず URI のスラッシュをいじったら解決した。

スラッシュ一つでかなり悩んでしまった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0