API'ye GET isteği göndermeye çalışıyorum ancak kodda özel başlık eklerken garip bir şeyler oluyor. Bir yerde web sunucusuna ulaştığında istek yöntemi OPTIONS olarak değişir.Özel başlıklarla Get GET İsteği ReactJS
Ancak, başlık olmadan aynı şeyi yaptığımda, bir GET türü olacaktır. Uygulama postacıyı kullandığımda (API geliştirme aracı) istek iyi çalışıyor!
istek kodu:
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>
Sunucusu günlük çıkışına (başlıkları ile):
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" "-"
Sunucusu günlük çıkışı (başlıkları olmadan):
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" "-"
https://github.com/github/fetch#obtaining-the-response-url
https://github.com/taylorhakes/promise-polyfill
burada ne eksik: ekstra tarayıcılarda destek getirme için
NPM modüllerini Eklenenler? Her şey bana doğru görünüyor.
Ben NPM ile çalıştırarak Reactjs uygulamasını test etmek için firefox geliştirme sürümünü kullanıyorum Muhtemelen size http://localhost:8080/api/app
Düğüm uygulaması çalıştıran varsa sunucuda cors
npm paketini https://www.npmjs.com/package/cors yüklemek istediğiniz
Bunu kontrol edin .. CORS ile bir ilgisi olduğundan neredeyse eminim: http: // stackoverflow.com/sorular/27915191/nasıl yapılır does-krom-tarayıcı-göndermek karar-zaman-to-the-seçenekleri –