我可以使用$ .ajaxSetup()在(非ajax)表单帖子上强制执行utf-8字符编码吗?

时间:2010-12-17 16:41:14

标签: jquery ajax utf-8 character-encoding

我有一个我在jQuery的帮助下发布的表单:

<form id="myForm" method="post" action="/processForm">
    <input type="text" name="inputs" id="inputs"/>
    <button id="submitButton">Submit Form</button>
</form>

$('#submitButton').click( function(event)
{
    if(formValidatesOk())
    {
        $("#myForm").submit();
    }
}

但根据Firebug在发布表单时报告的标题,表单中没有提交字符编码标题 - 只有这样:

Content-Type: application/x-www-form-urlencoded

我可以使用ajaxSetup强制执行utf-8字符编码:

$.ajaxSetup({ 
        scriptCharset: "utf-8" , 
        contentType: "application/json; charset=utf-8"
});

我不确定这是否可行,因为我在这里没有使用jQuery ajax - 我只是在表单上调用submit

2 个答案:

答案 0 :(得分:0)

使用$.ajaxSetup只会影响通过jQuery + AJAX发送的请求。您可以在用户点击提交时通过AJAX提交表单,然后在请求返回时强制重定向到另一个页面以强制执行utf-8。

答案 1 :(得分:0)

你不能,它只是不这样工作。 $.ajaxSetup()实际上只是扩展了所有$.ajaxSettings(和$.ajax())在执行时使用的the shorthand versions对象...它对任何没有效果其他类型的服务器请求,它专门用于jQuery的ajax操作(或任何构建在它们上面的任何操作)......但完全不会影响页面中的默认<form>行为。