it-swarm.com.de

ajax Jquery einfache Anfrage

Ich mache diese einfache Anfrage mit Jquery Ajax:

$.ajax({
    url: "https://app.asana.com/-/api/0.1/workspaces/",
    type: 'GET',
    success: function(res) {
        console.log(res);
        alert(res);
    }
});

Als Ergebnis wird eine leere Zeichenfolge zurückgegeben. Wenn ich in meinem Browser auf diesen Link gehe, bekomme ich:

{"status":401,"error":"Not Authorized"}

welches ist das erwartete Ergebnis. Warum funktioniert es nicht mit Ajax? Danke!

11
0xSina

Es scheint mir, dass dies ein domänenübergreifendes Problem ist, da Sie keine Anfragen an eine andere Domäne stellen dürfen. 

Es gibt Lösungen für dieses Problem: - Verwenden Sie ein Proxyskript, das auf Ihrem Server ausgeführt wird und Ihre Anfrage weiterleitet und die Antwort verarbeitet, die an den Browser gesendet wird Oder - Der Dienst, den Sie erstellen Anfrage sollte JSONP-Unterstützung haben. Dies ist eine Cross-Domain-Technik. Möglicherweise möchten Sie diese http://en.wikipedia.org/wiki/JSONP lesen.

7
Joao Almeida
var dataString = "flag=fetchmediaaudio&id="+id;

$.ajax
({
  type: "POST",
  url: "ajax.php",
  data: dataString,
  success: function(html)
  {
     alert(html);
  }
});
5
user3070157

Sie können AJAX -Anforderungen an Anwendungen richten, die von der SAME-Domäne und dem SAME-Port geladen werden.

Außerdem sollten Sie dataType JSON hinzufügen, wenn das Ergebnis automatisch deserialisiert werden soll.

$.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/

1
Stelian Matei

ich denke, das Problem ist, dass es keine Daten in der Erfolgsfunktion gibt, da die Anforderung in Ihrem Fall mit einem 401-Fehler abbricht und somit keinen Erfolg hat.

wenn du benutzt 

$.ajax({
        url: "https://app.asana.com/-/api/0.1/workspaces/",
        type: 'GET',
         error: function (xhr, ajaxOptions, thrownError) {
    alert(xhr.status);
    alert(thrownError);
  }
    });

es wird Ihren 401-Code geben, den ich denke ( dieser Link sagt es)

1
Matthew Fisher
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);
    });
0
PK-1825