Tartışma

Expressjs ile Veritabanı (MySQL/MariaDB) Kaydı: CORS Hatası Kesin Çözümü

Başlatan Celal · 27 Ağu 2026 05:30 · 0 Görüntülenme · 0 Yanıtlar
Konuyu Açan #0
CORS (Cross-Origin Resource Sharing), web uygulamalarının farklı kaynaklardan (domain, protokol, port) veri almasını veya göndermesini kontrol eden bir güvenlik mekanizmasıdır. Express.js ile MySQL veya MariaDB veritabanına kayıt işlemi yaparken CORS hatalarıyla karşılaşmak sıkça rastlanan bir durumdur. Bu hata genellikle, istemcinin (frontend) sunucuya (backend) yaptığı isteklerin uygun izinlere sahip olmadığı durumlarda ortaya çıkar. Bu yazıda, CORS hatasının nasıl çözüleceğini detaylı bir şekilde ele alacağız.

Öncelikle, CORS hatasının neden kaynaklandığını anlamak önemlidir. Tarayıcılar, bir web sayfasının yalnızca kendi kaynaklarından veri almasına izin verir. Ancak, farklı bir kaynaktan veri almak istendiğinde, sunucu tarafından uygun CORS başlıklarının gönderilmesi gerekir. Aksi takdirde, tarayıcı isteği engeller ve CORS hatasıyla karşılaşılır.

Express.js uygulamanızda CORS hatasını çözmek için şu adımları takip edebilirsiniz:

  1. CORS Middleware'inin Kurulumu: İlk olarak, CORS desteğini kolayca eklemek için cors kütüphanesini kullanabilirsiniz. Aşağıdaki komutla bu kütüphaneyi projenize ekleyin:

CODE
1   npm install cors


  1. CORS'u Aktif Hale Getirme: Kurulumdan sonra, uygulamanızın ana dosyasında CORS middleware'ini kullanarak gerekli başlıkları ekleyin. Örneğin:

CODE
12345   const express = require('express');
   const cors = require('cors');
   const app = express();

   app.use(cors());


  1. Özel Ayarlar: Eğer sadece belirli bir domain için CORS'u aktif hale getirmek istiyorsanız, cors fonksiyonuna bir nesne geçirerek ayarları özelleştirebilirsiniz. Örneğin:

CODE
12345   app.use(cors({
       origin: 'http://example.com', // İzin verilen domain
       methods: 'GET,HEAD,PUT,PATCH,POST,DELETE', // İzin verilen HTTP metodları
       credentials: true, // Kimlik bilgilerini (cookies, authorization headers vs.) paylaşma
   }));


  1. Veritabanı Bağlantısı: Veritabanı bağlantısını sağladıktan sonra, API endpoint'inizi oluşturabilir ve istemciden gelen istekleri işleyebilirsiniz. Örneğin:

CODE
12345   app.post('/api/records', (req, res) => {
       const { name, age } = req.body;
       // MySQL/MariaDB bağlantı kodu
       // Kayıt işlemi
   });


Yukarıdaki adımlar uygulandıktan sonra, istemci tarafında CORS hatası ile karşılaşmamanız gerekir. Ayrıca, sunucunun doğru başlıkları gönderdiğinden emin olmak için tarayıcı geliştirici araçlarındaki ağ sekmesini kontrol edebilirsiniz.

Sonuç olarak, CORS hatasını çözmek için doğru middleware'i kullanmak ve ayarları özelleştirmek kritik öneme sahiptir. Bu adımlar uygulandığında, Express.js ile MySQL/MariaDB veritabanına başarılı bir şekilde kayıt yapabilir ve CORS hatası yaşamadan uygulamanızı geliştirmeye devam edebilirsiniz.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi