2010-06-18 12 views
5

Merhaba Sitemde bir AJAX çağrısı ile garip bir sorun var. Sitemdeki bir betiğe basit bir AJAX çağrısı yapıyorum. Ancak AJAX çağrısı ready readyState = 4 ve status = 0 ile başarısız oluyor. Aramak istediğim komut dosyası benim sunucumda olduğundan hiçbir çapraz etki alanı sorunu yok.XHR readyState = 4 ancak Durum = 0 Google Chrome Tarayıcı'da

$.ajax({ 
        type:"GET", 
        url: 'http://mydomain.com/test.php', 
        success : function(response){ 
         console.log(response); 
        }, 
        error : function(XHR){ 
         console.log(arguments); 
        } 
}); 

Birçok siteye baktım ama bunun için bir çözüm yok gibi görünüyor!

+0

siteniz www. veya çıplak alan mı? – Kinlan

+0

=> Bu sorunla karşılaşıyorsanız, önce tarayıcı oturum çerezinizi temizleyin tek bir şey yapın sonra ajax URL'nizde ** "Math.rendom()" ** ekleyin ** Örneğin, "sample.php? R = "+ Math.random(); ** => URL doğru yazılmış mı? Eğer mutlak bir URL olarak yazıyorsanız ** (http: //www.etc gibi) ** işe yaramaz. Orada göreli bir yol mu? – SKULL

+0

Bir cevap buldunuz mu? Aynı sorunu alıyorum ve benimki bir alan sorunu değil. –

cevap

3

Bu, AJAX isteğinin URL'sinin komut dosyasının çalıştığı sayfadan farklı bir etki alanı olduğunda gerçekleşir. Örneğin, www.mydomain.com ve mydomain.com farklıdır.

, bunu düzeltmek cevap için kendimi bakarken bu soruyu buldum

url: 'http://mydomain.com/test.php', 

url: 'http://' + document.domain + '/test.php', 

ile değiştirin. Çözümü here'dan aldım.

+0

da protokol farklı olduğunda, yani, file: // ve http: // localhost ... –

+1

Aynı hatayı üretimde% 99 oranında çalışan çok basit bir sayfada alıyorum. Ama bazen bu hatayı alıyorum. Kod, aynı etki alanı ve protokole sahip, javascript kısa ve url kodlanmış olduğu için söylemek kolay. –

İlgili konular