JavaScript JSON fetch API - post ile veri oluşturma

01yildizmustafa

Decapat
Katılım
4 Eylül 2022
Mesajlar
66
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
JavaScript fetch API post ile veri oluşturmak istiyorum.
Web server for Chrome ile lokalde sanal bir sunucu oluşturdum: Port 5500. JSON bu adreste.

Problemim lokalde bu adreste veri oluşturamamak.

Adres değişince veri oluşturuyorum. Mesela.
JSON = https://reqres.in/api/users olunca veri ekleme işlemini başarıyorum.

fakat JSON = http://127.0.0.1.5500/kitap.json olunca başarısız oluyorum.
2 hata alıyorum.
Bunlar:

1 - Kütüphane.js:28 post http://127.0.0.1:5500/kitap.json 405 (method not allowed)

2 - uncaught (in promise) syntaxerror: Unexpected end of JSON input.

Bana yardım eder misiniz?
 
Son düzenleyen: Moderatör:
Kusura bakmayın ama 4 kere okumama rağmen birşey anlamadım. Biraz daha açar mısınız konuyu?
 
Kusura bakmayın ama 4 kere okumama rağmen bir şey anlamadım. Biraz daha açar mısınız konuyu?

@kaan.w "Web server for Chrome" uygulaması ile bir sanal sunucu oluşturdum. Bu sanal sunucunun adresi şu: http://127.0.0.1.5500
Bir JSON dosyam var. Bu JSON dosyasını yukarıdaki adreste tutuyorum.
JavaScript tarafında fetch API kullanıyorum. Post metodu ile JSON dosyasına veri eklemek istiyorum.
Karşılaştığım hatalar:
1 - Kütüphane.js:28 post http://127.0.0.1:5500/kitap.json 405 (method not allowed)

2 - uncaught (in promise) syntaxerror: Unexpected end of JSON input.
 
Son düzenleme:
@kaan.w "Web server for Chrome" uygulaması ile bir sanal sunucu oluşturdum. Bu sanal sunucunun adresi şu: http://127.0.0.1.5500
Bir JSON dosyam var. Bu JSON dosyasını yukarıdaki adreste tutuyorum.
JavaScript tarafında fetch API kullanıyorum. Post metodu ile JSON dosyasına veri eklemek istiyorum.
Karşılaştığım hatalar:
1 - Kütüphane.js:28 post http://127.0.0.1:5500/kitap.json 405 (method not allowed)

2 - uncaught (in promise) syntaxerror: Unexpected end of JSON input.
"Web Server for Chrome" un amacı local network üzerinde dosyaları paylaşmak ve web sayfalarını hostlamak anladığım kadarıyla. Oradaki bir dosyanın içindekileri POST request ile değiştiremezsiniz. Ortada herhangi bir handler yok sadece bir JSON dosyası.
 
"Web server for Chrome" un amacı local network üzerinde dosyaları paylaşmak ve web sayfalarını hostlamak anladığım kadarıyla. Oradaki bir dosyanın içindekileri post request ile değiştiremezsiniz. Ortada herhangi bir handler yok sadece bir JSON dosyası.

Sonrasında herkese yayımlamak üzere lokalde web uygulaması geliştiriyorum. Daha sonra sunucu, alan adı gibi şeylerin gerekliliğini biliyorum. Şu an geliştirirken sunucu ihtiyacına yönelik "Web Server for Chrome" ile karşılaştım. Bu, sunucu ihtiyacıma yönelik doğru bir cevap olmayabilir. Doğru cevap nedir? "web server for Chrome"'u kurduktan sonra JSON'dan veri okumayı başardım. Şimdi de veri eklemek istiyorum.
Doğrusu, bu işin yolu nedir bilmiyorum.
 
Sonrasında herkese yayımlamak üzere lokalde web uygulaması geliştiriyorum. Daha sonra sunucu, alan adı gibi şeylerin gerekliliğini biliyorum. Şu an geliştirirken sunucu ihtiyacına yönelik "Web Server for Chrome" ile karşılaştım. Bu, sunucu ihtiyacıma yönelik doğru bir cevap olmayabilir. Doğru cevap nedir? "web server for Chrome"'u kurduktan sonra JSON'dan veri okumayı başardım. Şimdi de veri eklemek istiyorum.
Doğrusu, bu işin yolu nedir bilmiyorum.
MongoDB, Firebase, PostgreSQL, Supabase gibi bir veri tabanınız olmalı. Daha sonra bir backend (gelen requestlerle ilgilenip geri cevap yolladığımız kısım) yazmalısınız. Expressjs vb. teknolojileri kullanıp api endpointleri yazacaksınız. Sonra frontend kısmından bu api endpointlerine fetch api ile request atacaksınız. Veri okumak için "GET", veri yazmak için "POST", veri güncellemek için "UPDATE", veri silmek için "DELETE" requesti atacaksınız. Sonra backend kısmında gelen requestin türüne göre veri tabanını değiştirebilirsiniz. Çok üstün körü anlattım ancak buradan bu kadar oluyor başarılar.
 
MongoDB, firebase, PostgreSQL, supabase gibi bir veri tabanınız olmalı. Daha sonra bir backend (gelen requestlerle ilgilenip geri cevap yolladığımız kısım) yazmalısınız. Expressjs vb. teknolojileri kullanıp API endpointleri yazacaksınız. Sonra frontend kısmından bu API endpointlerine fetch API ile request atacaksınız. Veri okumak için "get", veri yazmak için "post", veri güncellemek için "Update", veri silmek için "delete" requesti atacaksınız. Sonra backend kısmında gelen requestin türüne göre veri tabanını değiştirebilirsiniz. Çok üstün körü anlattım ancak buradan bu kadar oluyor başarılar.

@kaan.w peki varsayalım herkese yayımlanacak bir masaüstü uygulama var. Uygulama cihaza iniyor ve öyle çalışıyor. Bu uygulamanın mesela bir MySQL veri tabanı bağlantısı var. Bu uygulama için de sunucu tarafında yukarıda dediğiniz şeyler geçerli mi?
Çünkü halihazırda tek başıma geliştirmiş olduğum bir masaüstü uygulamam var ve bunu yayına almak istiyorum. Fakat daha almadım. Dolayısıyla tecrübem ve bilgim yok.
 
@kaan.w peki varsayalım herkese yayımlanacak bir masaüstü uygulama var. Uygulama cihaza iniyor ve öyle çalışıyor. Bu uygulamanın mesela bir MySQL veri tabanı bağlantısı var. Bu uygulama için de sunucu tarafında yukarıda dediğiniz şeyler geçerli mi?
Çünkü halihazırda tek başıma geliştirmiş olduğum bir masaüstü uygulamam var ve bunu yayına almak istiyorum. Fakat daha almadım. Dolayısıyla tecrübem ve bilgim yok.
MySQL ile bağlantı kurduysanız ve çalışıyorsa sorun olmaz. Nasıl bağlantı kurduğunuzu anlatabilir misiniz?
 
MySQL ile bağlantı kurduysanız ve çalışıyorsa sorun olmaz. Nasıl bağlantı kurduğunuzu anlatabilir misiniz?

@kaan.w teşekkür ederim. Masaüstündeki uygulamam sorunsuz çalışıyor. Masaüstü uygulamamda her şey tıkırında. Burada ve forumda genel olarak konu açmamın sebebi; uygulamayı yayına almak için araştırmalar yaptığımda şu 2 problemle karşılaşıp çözememem.

O problemler:

* "uygulama imzalama"
* "uygulama sertifikalandırma"

Bu problemleri çözemeyince ben de 'aynı uygulamanın web versiyonunu geliştirmeye çalışayım. Orada bu problemler olmaz' diye düşünmüştüm. Web de sandığımdan daha uzun ve meşakkatliymiş.

Masaüstünde bir uygulama geliştirdim. Aslında yapmak istediğim önce bunu yayına almaktı. Ardından bunun web versiyonunu oluşturmaktı. Nihayetinde ise mobilini. Fakat işler istediğim gibi gitmiyor...

Yukarıda bahsettiğim 2 problem beni tıkadı ve hareket ettiremez duruma getirdi. Bu da motivasyonumu düşürüyor. Çaresizce uygulamayı yayına almanın yollarını arıyorum...
 

Technopat Haberler

Geri
Yukarı