gpt4 book ai didi

javascript - 使用 ajax 提交表单会导致 Charset 出现奇怪的行为

转载 作者:行者123 更新时间:2023-11-29 15:45:51 26 4
gpt4 key购买 nike

我在使用 Ajax 发布表单时遇到问题。

这是我的 jQuery 代码:

    <script type="text/javascript" language="javascript" charset="utf-8">
$(document).ready(function(){
$("#newdata").submit(function(event) {
event.preventDefault();
$.post( "save.asp", $("#newdata").serialize() ,
function( data ) {
});
});
});
</script>

问题是,当我提交带有特殊字符(如 ®©)的数据时,它会在其前面加上一个 来保存它。但是,如果我在没有 jQuery/Ajax 的情况下提交,它不会使用此 字符格式化数据。有谁知道我为什么会遇到这个问题?

最佳答案

http://jsfiddle.net/aTS67/2/

问题出在 .serialize() 方法上(这不是真正的问题,它应该这样做)。正如您从我上面的演示中看到的那样,当您使用它对特殊字符进行编码的方法时(应该如此)。您有两个选择:

  1. 在服务器端解码 url 编码的字符串。您没有提到您使用的是什么技术,但它们可能是可以为您完成此操作的功能。例如,对于 PHP,您可以使用 htmlspecialchars_decode("YOUR ENCODED STRING"); 但所有服务器端语言都会有类似的东西(最佳选择)

  2. 您可以手动构建发送到服务器端的字符串,而不是使用 .serialize()。您可以将 $("#newdata").serialize() 替换为键值对的对象文字:

{"InputId1": $("#InputId1").val(), "InputId2": $("#InputId2").val()}

编辑

刚刚看到您的文件的扩展名是 ASP,所以您使用的是经典的 asp。我不确定要解码的语法是什么,但我确信它很容易找到。

关于javascript - 使用 ajax 提交表单会导致 Charset 出现奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11422967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com