2012-11-25 37 views
0

我正在創建一個讀取特定文件的AJAX腳本,該文件的名稱用GET var來標識。 index.php中的腳本的開頭是:AJAX,SEO和PHP文件夾麻煩

var expFile = '<?php echo $_GET['text_name']; ?>'; 
$(document).ready(function() { 

$.ajax({ 
    url: expFile+'.xml', 
    type: 'get', 
    dataType: 'xml', 
    success: function (data, textStatus) { 

    // Parses the content, which is escaped into a "text" tag in the xml, and puts it 
    //into an html div with a "content" class" 

     var content = decodeURIComponent($(data).find('text').text()); 
     $('.content').html(content); 
    } 
}); 
}); 

一切正常。該文件被讀取,並顯示正確的東西。 直接從AJAX中讀取位於index.php文件的同一文件夾中的XML文件。

現在我正在使用mod_rewrite爲了使URL的搜索引擎友好。 當我輸入髒URL(http://www.mysite.com/index.php?text_name=name-of-the-file-to-read)它沒關係。

但是,當我輸入重寫的網址(這是http://www.mysite.com/lyrics/name-of-the-file-to-read)內容不顯示。

我知道AJAX是客戶端,而mod_rewrite是服務器端,但我不知道如何從$.ajax的「url」參數到達父文件夾(實際上不存在)或像url: 'http://...'這樣的絕對鏈接(但它違背了同源策略)。

請幫幫我!!!

回答

0

弗朗西斯的回答,最初投入的問題:

解決。

該問題與腳本標記。我不得不把一個../對jQuery的href

<script type="text/javascript" src="../libraries/jquery.min.js"></script> 

然後我說../的URL,一切都很好。

0

的URL是有.xml由函數本身附加 - 在這條線:

url: expFile+'.xml', 

是仍然存在,當你與搜索引擎友好的URL嘗試?如果是這樣,我會刪除附加的.xml並再試一次。

+0

seo友好的網址最終沒有.xml。我在寫文章時犯了一個錯誤:GET var沒有.xml –

+0

問題不在於語法或文件名,而是使用SEO時找不到文件。我認爲問題是「歌詞/」文件夾:可能AJAX認爲這是一個文件夾,所以我必須在根文件夾中瀏覽並找到xml文件......但我怎麼用AJAX做到這一點?我試着用「../"+expFile+".xml」,但沒有任何反應。我也嘗試了絕對網絡路徑「http://www.mysite.com/"+expFile+".xml」,但它不起作用。 –