如何在Ajax的data中传递作为函数参数的flag与id?
问题:将jQuery Ajax的Data参数从对象形式改为字符串拼接形式
现有如下包含update函数的代码,当前通过对象形式在Ajax的data中传递参数:
function update(id, flag) { var flag_count = jQuery(flag + id).html(); flag_count++; jQuery(flag + id).html(flag_count); jQuery.ajax({ url: 'update_count.php', type: 'post', data: { type: flag, id: id }, success: function(result) { } }) }
若要改用字符串拼接的形式传递id和flag这两个参数,只需将Ajax配置中的data字段替换为拼接后的字符串即可,修改后的完整代码如下:
function update(id, flag) { var flag_count = jQuery(flag + id).html(); flag_count++; jQuery(flag + id).html(flag_count); jQuery.ajax({ url: 'update_count.php', type: 'post', // 替换为字符串拼接的data参数 data: 'type=' + flag + '&id=' + id, success: function(result) { } }) }
额外提示
如果flag或id包含特殊字符(比如空格、&、=等),直接拼接可能导致参数传递异常,建议用encodeURIComponent()对参数编码,示例:
data: 'type=' + encodeURIComponent(flag) + '&id=' + encodeURIComponent(id)
内容的提问来源于stack exchange,提问作者Ameer Hamza
相关产品推荐
相关产品推荐

