URL传递参数,参数是JSON 字符串,将字符串拼在url?后,该url不识别,报400错误。
解决办法:使用encodeURIComponent方法,对json字符串进行转码。encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持。
代码:
var col_authority = {"wfe_node_id":""+leswfe_task_inst_obj.NODE_ID+"","config":[{"node_id":"u5Sg70uRwYEtHY6j","col_field":["OFFICE_NAME","OFFICE_IF","OFFICE_NUMBER","OFFICE_DATE"],"btn_flag":"1"},{"node_id":"LVskPe5JBN5zrALL","col_field":["OFFICE_NAME","OFFICE_IF",],"btn_flag":"0"}]};
leswfe_fmx_table_make(fm01.inp_dyn_tab2, '../form/DynTable_edit_nodb.jsp?col_authority='+encodeURIComponent(mini.encode(col_authority)));
这里col_authority直接拼字符串易错,使用mini.encode转换为字符串,也可使用JSON.stringify()方法。
这时,在接收参数时出现问题,在jsp中var col_authority = “<%=col_authority%>”;报错,经过调试将“<%=col_authority%>”双引号去掉,问题解决。
关于encodeURIComponent方法详见点击打开链接