ajax jQuery eenvoudig ophaalverzoek

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 JSONtoevoegen 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);
    });

Other episodes