Je fais cette simple requête get en utilisant jquery ajax:
$.ajax({
url: "https://app.asana.com/-/api/0.1/workspaces/",
type: 'GET',
success: function(res) {
console.log(res);
alert(res);
}
});
En conséquence, il renvoie une chaîne vide. Si je vais à ce lien dans mon navigateur, je reçois:
{"status":401,"error":"Not Authorized"}
quel est le résultat attendu. Alors, pourquoi ne fonctionne-t-il pas avec ajax? Merci!
Il me semble qu’il s’agit d’une question interdomaine, car vous n’êtes pas autorisé à demander des informations à un autre domaine.
Vous avez des solutions à ce problème: - Utilisez un script proxy s'exécutant sur votre serveur qui transmettra votre demande et traitera la réponse en l'envoyant au navigateur Ou - Le service que vous rendez demande doit avoir le support JSONP. C'est une technique interdomaine. Vous voudrez peut-être lire ceci http://en.wikipedia.org/wiki/JSONP
var dataString = "flag=fetchmediaaudio&id="+id;
$.ajax
({
type: "POST",
url: "ajax.php",
data: dataString,
success: function(html)
{
alert(html);
}
});
Vous pouvez envoyer des requêtes AJAX aux applications chargées à partir du même domaine et du même port.
En outre, vous devez ajouter dataType JSON
si vous souhaitez que le résultat soit désérialisé automatiquement.
$.ajax({
url: "https://app.asana.com/-/api/0.1/workspaces/",
type: 'GET',
dataType: 'json', // added data type
success: function(res) {
console.log(res);
alert(res);
}
});
je pense que le problème est qu'il n'y a pas de données dans la fonction de succès, car la requête rompt avec une erreur 401 dans votre cas et n'a donc aucun succès.
si tu utilises
$.ajax({
url: "https://app.asana.com/-/api/0.1/workspaces/",
type: 'GET',
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
il y aura votre code 401 je pense ( ce lien le dit)
var settings = {
"async": true,
"crossDomain": true,
"url": "<your URL Here>",
"method": "GET",
"headers": {
"content-type": "application/x-www-form-urlencoded"
},
"data": {
"username": "[email protected]",
"password": "12345678"
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});