J'essaie de faire une demande ajax à l'API Google Contacts avec la configuration suivante:
$.ajax({
url: "https://www-opensocial.googleusercontent.com/api/people/@me/@all",
dataType: 'jsonp',
data: {
alt: 'json-in-script'
},
headers: {
'Authorization': 'Bearer ' + token
},
success: function(data, status) {
return console.log("The returned data", data);
}
});
Mais l'en-tête d'authentification ne semble pas être défini. Des idées?
J'ai eu le même problème récemment. Essaye ça:
$.ajax({
url: "https://www-opensocial.googleusercontent.com/api/people/@me/@all",
dataType: 'jsonp',
data: {
alt: 'json-in-script'
},
success: function(data, status) {
return console.log("The returned data", data);
},
beforeSend: function(xhr, settings) { xhr.setRequestHeader('Authorization','Bearer ' + token); }
});
EDIT: On dirait que cela ne peut pas être fait avec JSONP. Modifier les en-têtes HTTP pour une demande JSONP
Lorsqu'une authentification est nécessaire dans une demande interdomaine, vous devez utiliser un serveur proxy quelconque.
Depuis que vous utilisez dataType: jsonp
entraîne la création de la requête HTTP à partir du script qui est ajouté au DOM, les en-têtes définis dans le $.ajax
ne sera pas utilisé.
Il semble que la plupart des ressources OAUTH2 REST acceptent le paramètre access_token dans le cadre de l'url de la demande
http://self-issued.info/docs/draft-ietf-oauth-v2-bearer.html#query-param
veuillez plutôt essayer le code suivant:
$.ajax({
dataType: 'jsonp',
url: url,
data: {
'access_token':token.access_token
},
jsonpCallback: 'thecallback',
success: function(data){
_cb(data);
},
error: function(d){
_cb(d);
}
});