2017-05-27 2 views
0

Ich verwende das generierte JS SDK von API Gateway. Das Problem ist, wenn Theres Fehler, ich habe einen CORS Fehler bekommen, und ich bin nicht in der Lage, die Daten innerhalb noch den Statuscode zu erhalten:AWS API Gateway JS SDK HTTP-Antwortcode

enter image description here

Unsere Daten „“ obwohl es eine Meldung in der Registerkarte Netzwerk sein

enter image description here

Mein Code:

AWS.config.region = "ap-northeast-2" 
const cognitoParams = { 
    IdentityPoolId: "ap-northeast-2:...", 
    Logins: { 
    "accounts.google.com": googleUser.getAuthResponse().id_token 
    } 
} 

AWS.config.credentials = new AWS.CognitoIdentityCredentials(cognitoParams) 

AWS.config.credentials.get(function() { 

    const api = apigClientFactory.newClient({ 
    accessKey: AWS.config.credentials.accessKeyId, 
    secretKey: AWS.config.credentials.secretAccessKey, 
    sessionToken: AWS.config.credentials.sessionToken 
    }) 
    api.ec2Get() 
    .then(function (data) { 
     console.log('data', data); 
    }) 
    .catch(function (err) { 
     console.error('err', err) 
    }) 
+0

passieren Sie sind sicher, dass AWS.CognitoIdentityCredentials wirklich Anmeldeinformationen zurückkehr? – UXDart

+0

@UXDart Ja, es gibt Daten im Zugriffsschlüssel und im geheimen Zugriffsschlüssel. Oder was soll ich noch verifizieren? –

+0

Sind Sie sicher, dass [CORS] (http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html#how-to-cors-console) für Ihre API-Gateway-Ressource aktiviert und aktiviert wurde Bereitstellen Ihrer API auf der Bühne? –

Antwort

1

versuchen auch, die Region zu passieren ... so im Inneren:

const api = apigClientFactory.newClient({ 
    accessKey: AWS.config.credentials.accessKeyId, 
    secretKey: AWS.config.credentials.secretAccessKey, 
    sessionToken: AWS.config.credentials.sessionToken, 
    region: '...' 
}) 

da standardmäßig verwendet es ‚us-east-1‘, wenn Sie es nicht

+0

Hallo das löst das Problem mit einem ungültigen Sicherheitstoken, aber ich finde, dass, wenn das Token abläuft, ich immer noch nicht die Fehlermeldung oder den Status über JS erhalten kann, da es ein CORS-Fehler ist. Irgendwelche Ideen? –

+0

ok, aber der CORS-Fehler könnte sein, weil es tatsächlich einen CORS-Fehler gibt, oder weil der Server einen anderen Status als 200 zurückgegeben hat .. Was sehen Sie in der Konsole? nur der CORS Fehler? Wenn Sie den Status 403 erhalten, wissen Sie, dass das Token abgelaufen ist. – UXDart

+0

Wie bekomme ich den HTTP-Status vom Fehler vom SDK, das vom API-Gateway generiert wurde. Wie Sie auf dem Screenshot sehen können, ist der Status 0? –