2008-12-01 200 views
2

構建AJAX調用的回送URL的最佳方式是什麼?假設我有一個網頁Loopback jQuery AJAX請求

http://www.mydomain.com/some/subdir/file.php 

我想加載一個AJAX調用。在Firefox中,使用jQuery這工作得很好:

$.post('/some/subdir/file.php', ...); 

的Safari/WebKit的試圖解釋爲本地文件系統上的位置(所以它最終翻譯成「文件://some/subdir/file.php」 )。這不僅不指向任何有用的東西,還會導致安全錯誤。

有沒有一種方法可以實現這一點,而無需將域硬編碼到URL中?我想盡可能使其與域獨立。

更新

我結束了從location.href解析出的基本URL和將其擲入一個可訪問的jQuery函數如下:

/** 
* Retrieves the current root URL. 
* 
* @return string the root URL 
*/ 
$.fn.rootUrl = function() { 
    var url = location.href; 
    return url.substring(0, url.indexOf('/', 7)); 
}; 

回答

1

哇,這是非常不好的Safari瀏覽器/的WebKit ,IMO。

您可以觀察到document.href,計算斜線,並將許多「../」添加到URL的開頭。

1

您可以讓服務器在提供頁面時將自己的URL作爲JavaScript變量插入,然後將該變量用作Ajax調用的一部分。這將是安全和自動的。

1

或者,你可以組裝你的網址如下:

的「http://'+document.domain