Peki, CORS nedir ve bu hata neden karşımıza çıkar? CORS (Cross-Origin Resource Sharing), web tarayıcılarının bir kaynağa (örneğin bir API'ye) başka bir kaynaktan (farklı bir domain'den) erişmesine izin verir. Ancak, güvenlik nedeniyle, her zaman bu tür çapraz erişime izin verilmez. Flask uygulamanız bir API sağlıyorsa ve bu API'yi başka bir domain üzerinden çağırıyorsanız, tarayıcı, güvenlik politikaları gereği bu isteği engeller.
Ama merak etmeyin! Bu hatayı çözmek oldukça basit. Flask uygulamanıza, istemci tarafından gelen isteklerin başka bir kaynağa yönlendirilmesine izin verecek bazı ayarlamalar yapmanız gerekecek.
1. Flask-CORS Kütüphanesini Yüklemek
Kütüphaneyi yüklemek için terminal ya da komut satırına şu komutu yazabilirsiniz:
pip install flask-cors
Bu işlem, Flask uygulamanıza CORS desteği ekleyecek ve CORS hatalarını çözmeye bir adım daha yaklaşmış olacaksınız.
2. Flask Uygulamanıza CORS Desteği Eklemek
Tüm uygulama için CORS desteği eklemek için şu kodu kullanabilirsiniz:
from flask import Flask
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
@app.route('/api', methods=['GET'])
def api():
return 'CORS desteği sağlandı!'
if __name__ == '__main__':
app.run(debug=True)
Bu kod, Flask uygulamanızdaki tüm rotalar için CORS’u etkinleştirir. Artık başka bir domainden gelen istekler, güvenlik ihlali oluşturmayacak ve verilerinizi başarılı bir şekilde alabilecektir.
3. Sadece Belirli Domanlere İzin Vermek
CORS(app, resources={r"/api/*": {"origins": "http://example.com"}})
Bu durumda, sadece `http://example.com` domaininden gelen istekler kabul edilecektir. Diğer domainler, CORS hatası alacaktır.
4. CORS Hatasını Test Etmek
Eğer hâlâ bir hata alıyorsanız, sunucunun doğru şekilde çalıştığını ve portların birbirine uygun şekilde ayarlandığını kontrol ettiğinizden emin olun. Genellikle CORS hatası, sunucunun doğru yapılandırılmamasından kaynaklanır.