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

Chrome扩展程序ajax发送格式错误的重音字符

如何解决《Chrome扩展程序ajax发送格式错误的重音字符》经验,为你挑选了0个好方法。

我在chrome扩展程序上使用jQuery发送一个AJAX POST请求,但数据没有按预期到达,重音字符变得格格不入.

文字"HÄGERSTEN"变成"H"GERSTEN".

该文本在控制台等中显示正常,只有通过AJAX才能显示如上所述的其他页面.我的AJAX调用是基本的,我通过jQuery $ .ajax发送数据对象.我已尝试使用和不使用contentType,UTF-8和ISO-8859-1.没有不同.

这是我进行AJAX调用的方式:

var newValues = {name: 'HÄGERSTEN'}

$.ajax({
    url: POST_URL,
    type: 'POST',
    data: newValues,
    success: function() ...
});

newValues对象具有更多值,但我从表单中检索它们.但是,我已尝试手动指定这些值newValues['name'] = 'ÄÄÄÄ';,但仍会导致同样的问题.

我发送AJAX的页面的原始表单元素包含属性accept-charset="iso-8859-1".也许这很重要.

目标网站正在使用Servlet/2.5 JSP/2.1.只是因为它可能会有所作为.

我认为这是一个编码问题,因为我知道这应该是因为Chrome扩展要求脚本文件是UTF-8编码的,这可能与插件运行的网站和目标AJAX页面(同一网站)冲突正在使用ISO-8859-1编码,但我不知道如何处理它.我已经尝试了几种解码/编码UTF-8到ISO-8859-1和其他技巧的方法,但没有成功.

我已经尝试使用encodeURIComponent我的值,这只会使它们显示在显示我通过POST发送的值的表单上,例如H%C3%84GERSTEN.

我无法访问网站服务器,无法告诉您这是否是他们身边的问题,但我不这么认为.

UPDATE

现在我已经了解POST数据必须以UTF-8发送!那么转换不是问题吗?

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