当前位置:  开发笔记 > 编程语言 > 正文

Jquery:ajax发布和编码

如何解决《Jquery:ajax发布和编码》经验,为你挑选了1个好方法。

我无法理解为什么我无法从服务器答案中获得正确的ISO-8859-1 charstet.作为遗留代码的工作,我几乎不能改变页面上的字符集编码.

我使用了JQuery调用

$.post("server-side-code", {t:ctext, i:ioff, sid:sessionid},  
    function(data, status) {            
       $('#chk').append(data); 
     });

发布使用javascript创建的textarea值:


处理请求的服务器端脚本在其顶部声明:

text/html; charset=ISO-8859-1

所以,老实说,我无法弄清楚我应该在编码方面声明什么.尽管如此,当将服务器答案放在HTML元素中时,重音字符"àèéìòù"会反弹为:"ÃÃÃÃ"ÃÃÃ"Ã"

源保存为ascii.尝试执行此操作以对要发布的变量进行基本的Html编码无法解决:

ctext = escapeHTML(ctext);

function escapeHTML (str)
{
   var div = document.createElement('div');
   var text = document.createTextNode(str);
   div.appendChild(text);
   return div.innerHTML;
}; 

有些想法?

谢谢!



1> Rodrigo Asen..:

我现在有一个更好的解决方案.发布和完成工作都很完美.我正在为tomcat工作,他默认处理ISO 8859的东西.

网页属性:


头部内部网页的字符集.


现在,我的所有参数都使用转义函数进行转义,之前我提供了此解决方案.

(function($) {$.fn.escape = function() {
    return escape(this.val());};})(jQuery);

现在,在发送ajax请求时,我将contentType设置为:

contentType : "application/x-www-form-urlencoded; charset=iso-8859-1"

最后,当在servlet或任何接收器上接收参数时,我使用此获得解码参数.

    public String getHttpParameter(String name) throws Exception {
    String value = this.getHttpRequest().getParameter(name);
    return value == null || value.isEmpty() ? value : URLDecoder.decode(value,"ISO-8859-1");
}

POST和GET在IE 7和8,SAFARI,CHROME和FIREFOX中完美运行.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有