Je passe de jquery $ .ajax, qui fonctionnait correctement, à l'utilisation de AngularJS $ http.put pour accéder à une API reposante.
Je peux faire un appel API, mais les données PUT ne reçoit pas envoyé - donc mon API voit une requête PUT avec un objet de données vide, ce qui devrait contenir une chaîne JSON ->data.values = 'a json structure'
$http.put(
$rootScope.api_url,
{
values: jsonifiedValues
},
{
headers: {
apihash: sha256hash
}
}).success(function(data,status,headers,config){
// handle success
}).error(function(data,status,headers,config) {
// handle failure
});
Je n'ai jamais utilisé le $ $ d'AngularJS auparavant, mais quand je vide les données dans mon API PHP, c'est juste vide. voilà comment je le tirant de la demande dans le PHP:
parse_str(file_get_contents('php://input'), $put_vars);
$arr_req_data = $put_vars['values'];
Dans mon API si le apihash envoyé à partir de la demande ne correspond pas au hachage SHA256 construit sur les valeurs PUT, il échoue.
Cela fonctionne dans JQuery, juste échouer maintenant je suis passé à $ http. Je ne suis pas sûr pourquoi les données PUT semblent être vides.
Avez-vous regardé ce que le navigateur envoie réellement en utilisant devtools de votre navigateur? – Andorbal
Bon point, je ne l'avais pas vérifié mais les données étaient en train d'être envoyées –