2011-03-29 18 views
9

Windows Wamp Server'da çalışan "http://localhost/" içeriğini almak için ajax isteği yapmaya çalışıyorum.jQuery Yerel dosya sisteminden Ajax isteği (Windows dosyası: ///)

komut böyle bir şey gelen çalıştıran:

file:///C:/my/path/index.html

ben sadece denemek ve localhost içeriğini almak için bir standart $ .ajax isteği kullanıyorum

:

$.ajax({ 
      type: 'GET', 
      url: 'http://localhost/', 
      success: function(data) { 
      alert('success'); 
      }, error: function (data) { 
      alert('failed'); 
      } 
    }); 

ben Başarılı olmak için alamadım ... Yerel dosya sistemi veya bir şey ile ilgili bir sorun olarak görünüyor. Ben emin değilim.

+0

Sadece url için '/' kullanmayı deneyin, sonra da '/ index.html' –

+0

Nope'ı deneyin, bunlardan hiçbiri çalışmayan – Emmanuel

+0

Doğrudan URL'ye erişebilir misiniz? Js konsolunda bir hata var mı? –

cevap

15

Sorun Çözüldü!

Sadece yardımın için http://localhost/

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

teşekkür nasıl olsa adamlar benim index.php dosyasına bu başlığı eklemek zorunda!

+0

Merhaba Emmanual, ben seninle aynı durumdayım. Ancak herhangi bir sunucu kodum yok, bir veritabanı proxy sunucusu dbmojo [link] kullandım (code.google.com/p/dbmojo/). Komut dosyaları yerel dosyada: // dizinde bulunur. Şimdi nasıl başlık koyabilirim ('Erişim-Kontrol-İzin-Menşei: *'); ? ya da başka bir çözüm var mı? – iEamin

+0

@iEamin Durumunuzdan tam olarak emin değilim ... belki de "Access-Control-Allow-Origin" başlığı, apache (.htaccess) veya diğer sunucu yapılandırma dosyaları aracılığıyla eklenebilir mi? Emin değilim. Bunun gibi çapraz sunucu/protokol istekleri yapmanın başka bir yolunu bilmiyorum. – Emmanuel

3

Tarayıcı muhtemelen bunun bir etki alanı olduğunu düşündüğü için büyük olasılıkla işe yaramadı. Dosyaya bir dosya: // URL aracılığıyla eriştiniz, ancak http://localhost'dan veri almaya çalışıyorsunuz. Orijinal dosyanıza http://localhost'dan erişmeyi deneyin ve muhtemelen işe başlayacaktır.

+0

Evet, http: // localhost kaynağından erişiliyor. Ama temelde dosya: /// script ile yapmaya çalıştığım şey, wampserver'ın bir ajax isteği göndererek ve sonuçları inceleyerek çalışıp çalışmadığını tespit etmektir. – Emmanuel

+0

@Emmanuel - yukarıdaki kod, url'yi kullandığınızı gösterir, ancak burada dosya yolunu kullandığınızı söylüyorsunuz. Hangisi? –

+1

@adam - ajax isteği dosyadan geliyor: /// etc ... ve url 'http: //: localhost /' içeriğini almaya çalışıyor. Neyse, cevabım için aşağıya bakın ... – Emmanuel

11

Komut dosyasının file:/// URL'sinden çalıştığını söylüyorsunuz. file URL'lerinden AJAX istekleri yapmamak en iyisidir, çünkü bunlar tutarsız bir şekilde ele alınırlar. Örneğin, Chrome bunları tamamen reddeder. Ancak, daha büyük probleminiz aynı menşe ilkesidir: AJAX isteklerini yalnızca web sayfasının kendisiyle aynı ana bilgisayara yapabilirsiniz. file:/// ve http://localhost, aynı ana makine (aynı makine olsa bile) değildir.

Her şeyi http://localhost'dan çalıştırmak en iyisidir.

+2

Neyse ki haklı olduğunuzu düşünüyorum :(.Muhtemelen güvenlik için iyi, ama benim durumumda kötü. – Emmanuel

İlgili konular