2011-02-17 71 views
1

我在我的ajax更新頁面中看到一個奇怪的錯誤。ajax請求返回腳本標記 - mootools

請求如下:

var a = new Ajax(url,{ 
    method: 'get', 
     onComplete: function(response){ 
      $('loader').style.display="none"; 
      readData(response); 
     } 
    }); 
    a.request(); 
    return; 

這個工程幾乎所有的系統罰款,到目前爲止,但它打破了一個新的服務器上,用mootools的錯誤「未知的XML實體」。怪異的一部分,如果你追蹤與螢火蟲的要求,而不是返回JSON不如預期,響應正文如下:

<script>document.location.href='http://www.mysite.com?myparams=value&etc;</script> 

但是,如果你真的手動進行該請求在腳本粘貼URL標記(響應主體)以及瀏覽器中的參數,返回正確的JSON數據。

任何想法爲什麼請求會返回一個腳本標記而不是數據?

+1

聽起來這是更多的是一個狡猾的服務器重寫規則比mootools/JavaScript錯誤。有點愚蠢的處理無效的請求通過JavaScript重定向設置,但你去。作爲一個側面說明,你的任何請求是否發生跨域或從http到https?他們「手動」工作的事實意味着服務器不喜歡推薦網址或協議。 – 2011-02-17 16:52:14

回答

0

由於Dimitar在上述評論中提出,這是Joomla網站的一個問題,這要歸功於一個名爲sh404SEF的URL重寫工具。根據開發者的說法,修正是在高級配置選項中將「301 redirect」參數設置爲「no」。

因此,這與我的代碼或ajax功能無關,而是SEF重寫組件破壞請求。