こんばんは。きわさです。
こんな感じの普通?のコードを書き、php側で$_POST[‘data’]で取得しようとしたら、取得できず、何やらエラーまで。。
var xhr = new XMLHttpRequest(); xhr.open('POST', 'http://xxxxxx.com/xxx.php', true); xhr.onreadystatechange = function() { /* 省略 */ }; xhr.send('data=test');
エラーは、
「Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set ‘always_populate_raw_post_data’ to ‘-1’ in php.ini and use the php://input stream instead. in Unknown on line 0」
とかなんとか。
あれ、前まではできていたのに、とコードを確認したところ、
javascriptのコードに漏れがありました。
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
これ、ですね。
これがないとContent-Typeはtext/plainのようで、$_POSTでは取得できないそうです。
まだまだ勉強が足りません。
気づいてよかったです。