[英]Javascript calls relative paths and not from web root
當我從示例Ajax或其他函數調用javascript中的文件時,javascript會嘗試相對於當前地址而不是從baseURL或root調用它。
例如,如果我在domain.com/my-page/上,並且嘗試使用以下方式調用php文件
$.post('ajax/class.designer.php', { action: 'getcard', cardID: id },
function(data) {
loadCard(data)
}, "json");
當我實際希望它調用domain.com/ajax/class.designer.php時,它會嘗試調用domain.com/my-page/ajax/class.designer.php。
與諸如CKEditor之類的插件一樣,它嘗試調用相對於當前地址的.css文件。
該應用程序使用mod_rewrite和友好的url。 一切都重定向到/中的index.php,並從index.php重定向到該函數,然后調用該函數以顯示該頁面。
我已經設置了RewriteBase /,並且還將我的HTML頭中的baseurl設置為根路徑。
注意:在本地主機上運行時,一切正常。 當我將其移至實時服務器時,問題就開始了。
在ajax前面加一個斜線,即/ajax
。 當不使用斜線時,您將獲得相對路徑,即相對於您所在位置的路徑。 要獲得絕對路徑,請始終以/
開頭。
上述答案的替代方法是,您可以在頭部添加一個基本標簽。 這將告訴瀏覽器從哪里開始所有相對路徑。 對於您的特定問題,您將添加:
<base href="http://domain.com">
這將導致您添加的所有相對URL都從root開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.