J'ai donc ce code:
axios({
method: 'post',
url,
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
data: {
json,
type,
}
})
À l'origine, j'avais le axios.post
Normal, mais j'ai changé pour cela parce que je pensais que c'était peut-être un problème d'en-tête. Cependant, je ne détecte toujours rien dans mon $_REQUEST
Ni $_POST
. Cependant, il reçoit des données dans file_get_contents("php://input")
.
Une idée de ce qui ne va pas?
Modifier
D'accord, je pense que je sais ce qui ne va pas. Il le publie en tant qu'objet json, il ne peut donc être lu que dans l'entrée php: //. Comment puis-je le changer en une chaîne normale dans axios?
De la documentation (je n'ai pas conservé de liens dans le matériel cité):
Utilisation du format application/x-www-form-urlencoded
Par défaut, axios sérialise les objets JavaScript en JSON. Pour envoyer des données au format application/x-www-form-urlencoded à la place, vous pouvez utiliser l'une des options suivantes.
Navigateur
Dans un navigateur, vous pouvez utiliser l'API URLSearchParams comme suit:
var params = new URLSearchParams(); params.append('param1', 'value1'); params.append('param2', 'value2'); axios.post('/foo', params);
Notez que URLSearchParams n'est pas pris en charge par tous les navigateurs, mais il existe un polyfill disponible (assurez-vous de polyfill l'environnement global).
Vous pouvez également encoder des données à l'aide de la bibliothèque 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
});
ou
axios.post(url, {data1: 'string' }).then(function(response) {
//code here
});
api
$_POST = json_decode(file_get_contents("php://input"),true);
echo $_POST['data1'];
Vous pouvez utiliser jQuery.param
postdata = $.param({param1: 'value1', param2:'value2'})
Vous pouvez maintenant utiliser postdata a votre paramètre de publication