jquery - Fancybox AJAX编码问题

标签 jquery ajax character-encoding fancybox fancybox-2

我有一个完全英文的网站。使用 Spring 和 Bakcbone.js。在其中一个 View 中,我动态创建一个列表,其中每个 li 都是一个 fancybox 链接。单击时,它会使用 AJAX 加载弹出窗口的内容。这是我对 fancybox init 的了解:

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

我已经使用 fancybox 在我网站的另一个位置加载图像并且一切正常。 这次我通过 AJAX 加载一个简单的页面,它所做的只是显示来自属性文件的文本。文本为西里尔文。我得到一堆?????????

有几件事:

  1. 我已经在页面、servlet xml 和属性中设置了编码 使用 UTF-8 保存文件
  2. 我确实在 页面(调用 fancybox 的 LI 的可点击文本)及其 显示正确。只有当它出现在精美的盒子里时 给我带来了问题。

我检查了 Fancybox 代码,它没有更改 jQuery ajax 调用的编码。我检查了文档,jQuery 默认使用 UTF-8

你知道我可能会错过什么吗?

谢谢

最佳答案

我发现了我的问题。

对从服务器获得的响应进行更深入的分析后,我发现我仍然收到错误的字符编码。显然,我在 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);
}

关于jquery - Fancybox AJAX编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18948639/

相关文章:

javascript - 是否可以从不在 DOM 中的 html 字符串中获取 jquery 对象?

java - 使用 ajax 从 servlet 填充下拉列表

php - Zend 和 Jquery(Ajax 发布)

当文件编码为 Unicode 时,C# XmlDocument.Load(string) 失败

java - 无法在基于 Java 的程序中正确书写重音符号(西类牙语)

javascript - 无法在 asp.net 中通过 javascript 调用 C# 函数

javascript - 为什么touchmove只能用于文档

javascript - 我想为网站实现触摸手势

javascript - 奇怪的 jQuery Ajax 问题

c# - 将字节数组转换为字符串然后再返回会产生不同的结果