Ik doe dit eenvoudige get-verzoek met jQuery ajax:
$.ajax({
url: "https://app.asana.com/-/api/0.1/workspaces/",
type: 'GET',
success: function(res) {
console.log(res);
alert(res);
}
});
Als resultaat wordt een lege tekenreeks geretourneerd. Als ik naar deze link in mijn browser ga, krijg ik:
{"status":401,"error":"Not Authorized"}
wat het verwachte resultaat is. Dus waarom werkt het niet met ajax?
bedankt!
Antwoord 1, autoriteit 100%
Het lijkt mij dat dit een domeinoverschrijdend probleem is, aangezien je geen verzoek mag indienen bij een ander domein.
Je moet oplossingen voor dit probleem vinden:
– Gebruik een proxyscript dat op uw server wordt uitgevoerd en dat uw verzoek doorstuurt en het antwoord afhandelt dat naar de browser wordt verzonden
Of
– De service die u aanvraagt, moet JSONP-ondersteuning hebben. Dit is een domeinoverschrijdende techniek. Misschien wil je dit lezen http://en.wikipedia.org/wiki/JSONP
Antwoord 2, autoriteit 91%
Je kunt AJAX-verzoeken doen aan applicaties die zijn geladen vanaf het SAME-domein en DEZELFDE poort.
Daarnaast moet u dataType JSON
toevoegen als u wilt dat het resultaat automatisch wordt gedeserialiseerd.
$.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);
}
});
http://api.jQuery.com/jQuery.ajax/
Antwoord 3, Autoriteit 30%
var dataString = "flag=fetchmediaaudio&id="+id;
$.ajax
({
type: "POST",
url: "ajax.php",
data: dataString,
success: function(html)
{
alert(html);
}
});
Antwoord 4, Autoriteit 10%
Ik denk dat het probleem is dat er geen gegevens in de succesfunctie zijn omdat het verzoek zich in uw geval inbreukt met een 401-fout en dus geen succes heeft.
Als u
gebruikt
$.ajax({
url: "https://app.asana.com/-/api/0.1/workspaces/",
type: 'GET',
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
Er zal uw 401-code zijn, ik denk (Deze link zegt het)
Antwoord 5, Autoriteit 10%
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);
});