2013-09-22 80 views
2

我的網站完全是英文的。使用Spring和Bakcbone.js。在其中一個視圖中,我動態地創建一個列表,每個列表都是一個fancybox鏈接。點擊它使用AJAX加載彈出窗口的內容。以下是我對的fancybox初始化:Fancybox AJAX編碼問題

$(".fancyboxA").fancybox({ 
      type : 'ajax', 
      fitToView : false, 
      autoSize : true, 
      autoCenter : false, 
      helpers : { 
       overlay : { 
        locked : false 
       } 
      } 
     }); 

我用的fancybox到我的網站上,事情的工作量在另一個地方的圖像。 這次我通過AJAX加載一個簡單的頁面,它所做的只是顯示來自屬性文件的文本。該文本是西里爾文。我得到一堆?????????

幾件事情:

  1. 我已經設置在頁面上的編碼,在servlet XML,和屬性 文件保存使用UTF-8
  2. 我做在 相同的文字的顯示部分頁面(LI的可點擊文本,稱爲fancybox),並且它正確顯示 。只有當它在fancybox, 給我的問題。

我檢查Fancybox代碼,它不會更改jQuery ajax調用的編碼。我檢查文檔,默認情況下,jQuery使用UTF-8

任何想法,我可能會失蹤?

謝謝

+0

感謝JFK編輯標題。我找不到如何做到這一點:( – Pinny

回答

2

我發現我的問題。

經過對服務器反饋的深入分析後,我發現我仍然得到了錯誤的字符編碼。顯然,我在Spring XML文件中所做的所有配置對於AJAX調用來說都不夠。對於常規頁面來說已經足夠了,但對於使用AJAX動態加載的內容來說卻不夠好。

所以我能夠通過設置在返回像這樣的內容的方法編碼權來解決這個問題:

@RequestMapping(method = RequestMethod.GET, value = "/mySuperPage") 
public ModelAndView getMySupercontent(@RequestParam int id, HttpServletRequest request, ModelMap map, HttpServletResponse response) { 
    map.put("mySuperStuff", uiContentRetriever.getSuperStuff(id)); 
    //This is what does the trick 
    response.setContentType("text/plain;charset=UTF-8"); 
    return new ModelAndView("/mySuperPage", map); 
} 
+0

我一直試圖找出這個問題與java web應用程序的幾個月,認爲這是由於舊的驅動程序。這是解決它的答案! – jtiger

+0

很高興我能幫助:) – Pinny

+0

@Pinny不幸的是,它並沒有爲我工作。你可以看看[這個](http://stackoverflow.com/questions/31351626/jquery-fancybox-with-ajax/31352383)的問題嗎?提前致謝。 –