Próbuję wysłać żądanie GET do interfejsu API, ale gdy dodaję niestandardowe nagłówki do kodu, dzieje się coś dziwnego. Gdzieś, gdy metoda żądania zmienia się na OPCJE po dojściu do serwera WWW.Pobranie żądania GET za pomocą niestandardowych nagłówków ReactJS
Ale kiedy zrobię to samo bez nagłówków, będzie to typ GET. Kiedy korzystam z listonosza aplikacji (narzędzie do programowania interfejsu API), żądanie działa poprawnie!
code request:
let token = this.generateClientToken(privateKey, message);
let myheaders = {
"appID": appID,
"authorizationkey": token
}
fetch('http://localhost:8080/api/app/postman', {
method: "GET",
// body: JSON.stringify(''),
headers: myheaders
}).then(function(response) {
console.log(response.status); //=> number 100–599
console.log(response.statusText); //=> String
console.log(response.headers); //=> Headers
console.log(response.url); //=> String
return response.text()
}, function(error) {
console.log(error.message); //=> String
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
log serwera ouput (z nagłówkami):
worker_1 | 172.18.0.4 - 17/Mar/2017:15:47:44 +0000 "OPTIONS /index.php" 403
web_1 | 172.18.0.1 - - [17/Mar/2017:15:47:44 +0000] "OPTIONS /api/app/postman HTTP/1.1" 403 5 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:54.0) Gecko/20100101 Firefox/54.0" "-"
wyjście log serwera (bez nagłówków):
worker_1 | 172.18.0.4 - 17/Mar/2017:16:01:49 +0000 "GET /index.php" 403
web_1 | 172.18.0.1 - - [17/Mar/2017:16:01:49 +0000] "GET /api/app/postman HTTP/1.1" 403 5 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:54.0) Gecko/20100101 Firefox/54.0" "-"
Dodano modułów KMP do pobrania wsparcie w dodatkowych przeglądarek:
https://github.com/github/fetch#obtaining-the-response-url
https://github.com/taylorhakes/promise-polyfill
Co ja tu brakuje? Dla mnie wszystko wygląda poprawnie.
używam firefox edycję rozwoju przetestować aplikację Reactjs uruchamiając go z KMP rozpocząć
Sprawdź to .. Jestem prawie pewien, że ma to coś wspólnego z CORS: http: // stackoverflow.com/questions/27915191/how-does-the-chrome-browser-choose-when-to-send-options –