v2.5.2
Giriş yap

Ajax kullanarak veri çekme

enbiyadev
2,022 defa görüntülendi

Aşağıdaki kod bloğundan uzaktan veri çekmeye çalışıyorum ama error hatası veriyor verileri listeyemiyorum hata da göremiyorum açıkcası. Yardımcı olursanız sevinirim :)

$.ajax({
    url: 'http://application.yesilyurtavm.com/yesilyurtapi/stores.php',
    xhrFields: {
      withCredentials: false
    },
    headers: {
      "Access-Control-Allow-Origin: ": "*",
      "Access-Control-Allow-Methods: ": "GET",
      "Access-Control-Allow-Headers: ": "Authorization",
    },
    type: "GET", /* or type:"GET" or type:"PUT" */
    contentType: "application/json",
    dataType: "json",
    success: function (data) {
      console.log(data);
    },
    error: function () {
      console.log("error");
    }
  });
defatul
1470 gün önce

Kısaca ben kendi sunucumu yorarken sen tarayı tarafından sürekli istek atarak benim sunucumu yorma eğer benden gerçekten bir bilgiye ihtiyaç duyuyor isen sende kendi sunucunu biraz yorki boşu boşuna istek atma bana demiş oluyorsun bir nevi

http://application.yesilyurtavm.com/yesilyurtapi/stores.php Sitesi, sayfanın başına şu kodu eklemiş olsaydı eğer

header( 'Access-Control-Allow-Origin: *' );

Ajax isteklerinde bir problem yaşamayacaktın

Buradan veriyi şu şekilde alabilirsin önce kendi sunucunda veri-al.php adında bir dosya oluştur ve file_get_contents ile bu sitedeki veriyi geri döndür daha sonra kendisiten.com/ver-al.php dosyasına ajax isteği gönderebilirsin

localhost üzerinde çalıştığında örneğin http://localhost/proje1/ alanında çalışırken http://localhost/baska-proje/veri-al.php dosyasına istek gönderdiğindede bu hataya düşersin tarayıcı bunu izin vermeyen başka bir site olarak görür taki "veri-al.php" dosyasının başında "Access-Control-Allow-Origin" izini verene dek

Bilgi 1:
("Access-Control-Allow-Origin": "*") tüm sitelere izin ver demek oluyor yıldız yerine bir domain adı girerek sadece o domaine izin verebilirisin veya bir kaç domain'e
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin

Bilgi 2:
Tarayıcının bu özelliğini manipüle etmek istiyor isen chrome için şöyle bir eklenti var eklentiyi etkinleştirerek izin vermeyen sitelere ajax isteği yapabilirsin
Eklentinin yaptığı şey aslında Siteden dönen başlıkların arasına "Access-Control-Allow-Origin" eklemek, ajax bu değeri kontrol ediyor ve var olduğunu görünce izin veriyor
https://chrome.google.com/webstore/detail/allow-cors-access-control/lhobafahddgcelffkeicbaginigeejlf?hl=tr