2017-09-16 3 views
0

Dies ist meine Funktion:GET nicht zurück JSON-Objekt

$.ajax({ 
    url: 'http://ec2-52-202-201-59.compute-1.amazonaws.com:8080 /receipts', 
    dataType: 'application/json', 
    complete: function(data){ 
     console.log(data) 
    }, 
    success: function(data){ 
     alert(data) 
    } 
    }); 

Die Funktion geht nie auf Erfolg, und das Objekt, das in Daten enthalten ist, ist die folgende:

Object { readyState: 0, getResponseHeader: getResponseHeader(), getAllResponseHeaders: getAllResponseHeaders(), setRequestHeader: setRequestHeader(), overrideMimeType: overrideMimeType(), statusCode: statusCode(), abort: abort(), state: state(), always: always(), catch: catch(), 8 more… } 

Wenn Ich gehe auf diesen Link in meinem Browser Ich kann die JSON-Dateien sehen. Wenn ich in meine Konsole gehe, ist die GET-Anfrage erledigt, und ich kann im Antworttext die JSON-Objekte sehen, die ich brauche.

Warum funktioniert der Ajax-Anruf nicht?

+1

Wenn Sie einen Fehler-Handler als auch hinzufügen, dann würden Sie herausfinden, warum. Ich bekomme * "ungültige URL" *, was ungefähr richtig erscheint – adeneo

+0

Die richtige URL ist: http://ec2-52-202-201-59.compute-1.amazonaws.com:8080/receipts. In dem Code ist ok, ich weiß nicht, warum hier Leerzeichen hinzugefügt wurden –

+0

Die Antwort hat keine Access-Control-Allow-Origin-Antwortheader, so dass Ihr Browser Ihren Code den Zugriff auf die Antwort blockiert. Wenn Sie die Devtools-Konsole Ihres Browsers überprüfen, sehen Sie, dass der Browser eine Fehlernachricht mit dem Hinweis https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS protokolliert hat. – sideshowbarker

Antwort

0

Ich habe versucht, Ihr Beispiel und ich habe dies auszuführen:

XMLHttpRequest nicht http://ec2-52-202-201-59.compute-1.amazonaws.com:8080/receipts laden kann. Die Antwort auf die Preflight-Anforderung übergibt die Zugriffskontrollprüfung nicht: Auf der angeforderten Ressource ist kein Header "Access-Control-Allow-Origin" vorhanden. Ursprung 'http://localhost' ist daher nicht erlaubt.

Es scheint, dass ein cross-domain Problem ist. Überprüfen Sie die Konfiguration in Ihrem Server.

Amazon hat einige documentation darüber

Verwandte Themen