2013-09-22 44 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)的问题吗?提前致谢。 –