jQuery - 做.serialize()正确的逃脱?

mar*_*zzz 1 jquery

我已经使用.serialize()完成了一个函数.

这是功能:

$('form[name=contactForm]').submit(function(e){
    e.preventDefault();
    $.ajax({
        type: 'POST',
        cache: false,
        url: './ajax/header_ajax.php',
        data: 'id=header_contact_send&'+$(this).serialize(), 
        success: function(msg) {
            $("#boxContentId").html(msg);
        }
    });
}); 
Run Code Online (Sandbox Code Playgroud)

如果我在输入框中输入一些值为','或者, 我看到它们正确处理,并且功能正常工作.怎么可能?它应该混淆'id=header_contact_send&'+$(this).serialize(),

serialize()函数是否为字符串的转义?

Jer*_*NER 7

基本上,序列化在此文件中实现.它最终为每个值对调用一个在jQuery.param中定义的函数:

add = function( key, value ) {
// If value is a function, invoke it and return its value
value = jQuery.isFunction( value ) ? value() : value;
s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
};
Run Code Online (Sandbox Code Playgroud)

因此,通过调用本机javascript函数encodeURIComponent来完成转义.

我希望这能帮到您,

杰罗姆瓦格纳