v2.5.2
Giriş yap

jQuery ve ajax kullanırken ERR_BLOCKED_BY_CLIENT hatası alıyorum

ozermert26
714 defa görüntülendi

ajax öğrenmeye çalışıyorum. Ancak google chrome konsolu aşağıdaki hatayı gösteriyor:

ERR_BLOCKED_BY_CLIENT error

Herhangi bir reklam engelleyici vs. kullanmadan denediğimde sonuç değişmedi. Aşağıdaki koda bakıp hatamın ne olduğunu yazar mısınız?

kod:

<!DOCTYPE html>
<html lang="tr">
<head>
 <meta charset="UTF-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>document</title>
<script src="jquery.js"></script>
<script src="javaScriptFunctions.js"></script>
</head>
<body>
<h1>Enter your name</h1>
<form id="form" name="form">
<label>Enter your name: <input id="name" name="name"></label><br>
<input type="submit" id="submit" value="OK">
</form>
<script>
document.getElementById('submit').onclick = function(){
    event.preventDefault();
    var form = $("#form").serialize();
    $.ajax({
        type:"GET",
        data: form //Formu aynı sayfadan aynı sayfaya göndermeye çalıştığım için url parametresini kullanmadım
    })
}
</script>
</body>
</html>
abdullahx
1267 gün önce

Şu an fark ettim aslında, bu iki kullanım arasında küçük bir nüans var, ikisi de belirli koşullarda çalışıyor, şöyle ki;

Eğer süslü parantez KULLANMAZSANIZ siz $.get veya $.post yöntemine (ve ajax a da aynı zamanda) kendiniz data ekleyemiyorsunuz. Yani bu örnekte siz posttaki verileri serialize() ettiğinizde $.get in data parametresine otomatik olarak key=value şeklinde veri koymuş oluyorsunuz. Yani ad=mehmet gibi oluştuğu için süslü parantez eklemeye gerek kalmıyor. Veri direkt olarak string formatında gönderiliyor. PHP tarafında da direkt olarak $_GET['ad'] şeklinde yakalayabilirsiniz. Ama ayriyeten diyelim id değeri eklemek isterseniz atıyorum bunu $.get metodu içerisinde yapamıyorsunuz.

Süslü parantez kullanınca da bu defa göndereceğiniz veriye bir isim vermeden gönderemiyorsunuz, örnekte dedim ya data adının yerine isterseniz siz veri yazın diye, işte bu şekilde elle bir key=value oluşturmak isterseniz süslü parantez açmak zorundasınız. PHP tarafında da bu veriyi sizin süslü parantez içinde verdiğiniz key değeri ile yakalarsınız.

Aslında serialize() işlemlerinde süslü parantez kullanmak işi biraz uzatmak gibi oluyor doğrudur. Başta ciddi bir hata demişim ama yanılmışım sanırım.

Zaten $.get veya $.post metodlarının dokümantasyon sayfalarına göz atarsanız data nın object ve string değerler alabileceğini görebilirsiniz. Umarım aradaki farkı açıklayabilmişimdir. Ben de yeni şeyler öğrenmiş oldum :)