2017-10-26 2 views
0

Ich habe versucht, einen API-Aufruf an eine andere Domäne zu senden, die keine Cors aktiviert hat. so etwas wie diesesAnforderungsheader, der nicht als Parameter an API-Aufrufe gesendet wird

wurde der API-Aufruf gemacht:

let url = `https:sampleApiUrl?params=xxxx`; 
      console.log("hitting dashboard url") 
      get(url, token) 
       .then((resp) => { 
        console.log("resp", resp) 
       }) 
       .catch((error) => { 
        console.log(error) 
       }) 

Dieser Aufruf API, anschließend ruft ein 'get' -Methode:

const get = (url, authToken) => { 
return baseFetch(url, 'get', false, authToken).then(response => { 
    if (response.status >= 200 && response.status < 300) { 
     return response.json(); 
    } else { 
     const error = new Error(response.statusText); 
     error.response = response; 
     throw error; 
    } 
}); 

}

Nun, diese Methode Anrufe erhalten eine baseFetch-Methode:

const baseFetch = (url, verb, body, authToken) => { 
const request = { 
    method: verb, 
    headers: { 
     'Accept': 'application/json', 
     'Content-Type': 'application/json', 
     'X-Requested-With': 'XMLHttpRequest', 
     'Access-Control-Allow-Origin': '*', 
     'credentials': 'include' 
    }, 
    mode: 'cors' 
} 

if (authToken){ 
    // adding x-access-token in the request header 
    request.headers['x-access-token'] = authToken; 
} 

if (body){ 
    request.body = JSON.stringify(body); 
} 

return fetch(url, request); 

}

Jetzt, wenn dieser API-Aufruf angefordert wird, kann ich nicht sehen, dass das "x-access-token" in den Browser-Netzwerkaufruf eingetragen ist.

No x-access-token in request-headers

Auch bin ich nicht sicher, warum ich den Statuscode 204 als Antwort bekommen. Der Aufruf dieser API vom Postboten und direkt vom Browser oder Aufruf als Curl-Anforderung gibt die richtige Antwort zurück.

Dank

Antwort

1

auf dem Bild, Sehen, suchen Sie in den Headern für Verfahren vor Flugoptionen und die GET-Methode nicht. Die Preflght-Anfrage wird vom Browser generiert und hat keinen benutzerdefinierten Header. deshalb hatte es nicht das x-access-token in seinen headern.

Verwandte Themen