2010-03-17 9 views
5
aşağıdaki biçimde siteme URL'leri yeniden eşleştirmek mod_rewrite kullanıyorum

:JavaScript'te kök yol nasıl edinilir?

http://www.mydomain.com/health/54856

http://www.mydomain.com/economy/strategy/911025/

http://www.mydomain.com/tags/obama/new

sorun AJAX çağrıları yapıyorum ki bir dosyaya: http://www.mydomain.com/login.php

Ve FULL url'yi yazmak istemiyorum, hatta sabit bir klasör seviyesi olmadığından ../ numarasını kullanmıyorum.

$.ajax({ 
    type: "POST", 
    url: "http://www.mydomain.com/login.php" 
}); 

cevap

21

Ne hakkında:

$.ajax({ 
    type: "POST", 
    url: "/login.php" 
}); 

Erişime izin emin olun

Yani, ne ben istediğiniz alan adı her neyse kökünden gelen login.php erişmek için bir şeydir mod_rewrite kurallarınızdan /login.php'a.

<script type="text/javascript"> 
// siteRoot will be equal to http://www.yourdomain.com/ 
var siteRoot = '<?php echo $theSiteRoot; ?>'; 
<script> 

Ve sonra AJAX çağrıları içinde siteRoot değişkeni ekleyin:

+0

Teşekkürler bir demet :) – Ryan

5

Ayrıca JS HTML kafasında kullanmak için bir değişken tanımlayabiliriz.

$.ajax({ 
    type: "POST", 
    url: siteRoot+"login.php" 
}); 

Sadece siteRoot değişkenini .js dosyalarınızı eklemeden önce yazdırdığınızdan emin olun.

Bu çalışmayı elde etmenin başka bir yolu, HTML temel etiketini kullanmaktır. Tüm istemci tarafı istekleri bu hedefe yapılacaktır. Herhangi bir link/script deklarasyonundan önce ekleyin.

<base href="<?php echo $theSiteRoot; ?>" /> 

Umut bu yardımcı olur :)

Düzenleme: Eğer baz etiketi kullanma yöntemine yer eğer AJAX şey eklemek

Kişisel alışkanlık ihtiyaç çağırır. Sadece basit bir çağrı hile yapacak.

$.ajax({ 
    type: "POST", 
    url: "login.php" 
});