• 10-06-2023, 15:14:28
    #1
    Merhabalar,
    Bir konu hakkında yardıma ihtiyacım var. Websitemde bir kayıt formu var ve buradan kaydedilen e-posta adreslerini yakalayıp api ile göndermeye çalışıyorum ama aşağıdaki hatayı alıyorum.
    "Access to fetch at 'https://domainname.com/api/subscribers' from origin 'null' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request."

    Kod ise şu şekilde:
    <form id="subscriptionForm">    
    <input type="email" id="emailInput" placeholder="Email Address" required>    
    <button type="submit">Subscribe</button>
    </form> 
    <script>
        document.getElementById("subscriptionForm").addEventListener("submit", function (event) {
            event.preventDefault();
            var email = document.getElementById("emailInput").value;
            var data = { email: email };
            var apiKey = "12345678";
            fetch("https://domainname.com/api/subscribers", {
                method: "POST",
                headers: {
                    "Content-Type": "application/json",
                    "X-DemoAPI-Key": apiKey
                },
                body: JSON.stringify(data)
            })
            .then(function (response) {
                if (response.ok) {
                    console.log("Success");
                } else {
                    console.error("Error");
                }
            })
            .catch(function (error) {
                console.error("Error:", error);
            });
        });
    </script>
    Bu konuda tavsiyesi olan arkadaşlar yardımcı olabilir mi?
  • 10-06-2023, 15:37:05
    #2
    Üyeliği durduruldu
    Hocam localde çalışıyosunuz canlıda dener misiniz bir de
  • 10-06-2023, 17:29:29
    #3
    Tam olarak ne için yapıyorsunuz? Sunucunuz var ise nodejs ile yapabiliriz
  • 12-06-2023, 12:44:30
    #4
    API sunucusu istek attığınız makineden gelen istekleri kabul etmeyecek şekilde yapılandırılmış. Yani sunucu header alanlarında gerekli girdileri göndermiyor veya sizin gönderim yaptığınız host açıkça belirtilmiyordur. Ya sunucuya gidip response'lara bu header'ları ekleyecek, gönderim yaptığınız host'u açıkça belirteceksiniz ya da sunucu ile aynı host üzerinden gönderim yapacaksınız. Ya da CORS mekanizmasını uygulamayan browser harici bir araç üzerinden request yapabilirsiniz.