Il semble que votre demande soit correctement envoyée et que vous receviez la réponse.
J'ai fait un essai avec un service RESTful qui renvoie un code d'état 401
. Voici mon code JavaScript:
var href = 'https://contactsapi.apispark.net/v1/contacts/';
var acceptValue = 'application/json';
var contentType = 'application/json';
var credentials = {}; //'something';
function onSuccess(data, status, headers, config) {
}
function onError(data, status, headers, config) {
console.log('data = '+JSON.stringify(response, null, 2));
}
$http({
method: 'POST',
url: href,
headers: {'accept': acceptValue, 'content-type': contentType},
data: credentials
}).then(onSuccess, onError);
L'objet de réponse contient dans mon cas ce qui suit:
{
"data": {
"code": 401,
"contactEmail": null,
"description": "The request requires user authentication",
"homeRef": "/",
"reasonPhrase": "Unauthorized",
"uri": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2"
},
"status": 401,
"config": {
"method": "POST",
"transformRequest": [
null
],
"transformResponse": [
null
],
"url": "http://localhost:8182/contacts/",
"headers": {
"accept": "application/json",
"content-type": "application/json"
},
"data": {}
},
"statusText": "Unauthorized"
}
Ce qui pourrait vous aider est d'avoir un regard sur le contenu de la réponse (en-têtes/charge utile). Par exemple, si la charge utile est une charge JSON, la valeur de l'en-tête Content-Type
. Il y a peut-être un écart entre le Content-Type
de la réponse et le contenu réel. Par exemple, vous avez reçu du contenu en texte brut avec la valeur de type de contenu application/json
.
J'ai fait un test pour simuler ce cas (de contenu XML avec un type de contenu application/json
) et je l'erreur suivante:
SyntaxError: Unexpected token <
at Object.parse (native)
at vc (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:15:480)
at Zb (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:82:229)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:83:143
at m (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:7:322)
at dd (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:83:125)
at d (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:84:380)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:119:113
at n.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:133:221)
at n.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js:130:233)
tente angulaire pour analyser le contenu JSON mais comme il est malformé, il ne peut pas et jette une erreur.
Il semble être similaire à votre erreur. Je pense donc que le problème n'est pas dans votre application angulaire mais dans le serveur ...
espérons qu'il vous aidera, Thierry
Cela se produit uniquement lorsque la demande a rejeté avec l'erreur, le plus probablement d'un problème de serveur. – shmidtdan