だから私はこのコードを持っています:
_axios({
method: 'post',
url,
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
data: {
json,
type,
}
})
_
もともとは通常の_axios.post
_でしたが、ヘッダーの問題であると考えたため、これに変更しました。ただし、まだ_$_REQUEST
_も_$_POST
_でも何も検出していません。ただし、file_get_contents("php://input")
でデータを受信しています。
何が間違っているのでしょうか?
編集
さて、何が悪いのか知っていると思います。 jsonオブジェクトとして投稿しているため、php:// inputでのみ読み取ることができます。 axiosで通常の文字列に変更するにはどうすればよいですか?
ドキュメント から(引用資料にリンクを保存していません):
Application/x-www-form-urlencoded形式を使用する
デフォルトでは、axiosはJavaScriptオブジェクトをJSONにシリアル化します。代わりにapplication/x-www-form-urlencoded形式でデータを送信するには、次のオプションのいずれかを使用できます。
ブラウザ
ブラウザでは、URLSearchParams APIを次のように使用できます。
var params = new URLSearchParams(); params.append('param1', 'value1'); params.append('param2', 'value2'); axios.post('/foo', params);
URLSearchParamsはすべてのブラウザでサポートされているわけではありませんが、利用可能なポリフィルがあることに注意してください(グローバル環境を必ずポリフィルしてください)。
または、qsライブラリを使用してデータをエンコードできます。
var qs = require('qs'); axios.post('/foo', qs.stringify({ 'bar': 123 }));
var params = {
data1: 'string',
}
axios.post(url, params).then(function(response) {
//code here
});
または
axios.post(url, {data1: 'string' }).then(function(response) {
//code here
});
api
$_POST = json_decode(file_get_contents("php://input"),true);
echo $_POST['data1'];
JQuery.paramを使用できます
postdata = $.param({param1: 'value1', param2:'value2'})
Postdataにpostパラメーターを使用できるようになりました