a标签进行POST请求
在很多时候,我们都习惯了用a标签去触发某一些事件,如分页,进入商品详情等等。对于在a标签的href中传输中文,其实是一件很麻烦的事。一个程序如果说很多数据都需要进行转码,那有多少意义去做呢?冗余代码会不会很多呢?虽然仅仅只是那么一小行代码,但是对于代码的严谨性是否真正意义上有提高呢?
对于a标签来说,它就如同一个鸡蛋,原本是完好的,数据可以通过GET方式去传递的。但是一旦数据中出现了某种意义上它不认识的字符,那么这个鸡蛋就如同过期了一般成为了臭鸡蛋。但是很多时候我们不能去修改他的不是,因为一旦改这一个a标签就有几十几百甚至上千上万个a标签都得变。
是不是很麻烦呢?其实只需要做一个公共的js就可以解决这种繁琐的问题了。众所周知的POST方式是很有效解决部分中文乱码的提交方式。那么我们就可以将这一个方式植入到a标签的href上,让这个a标签进行提交的时候是通过的POST请求。
公共代码如下:
function aPost(formName){ $(formName+" a").click(function (){ var url = $(this).attr("href"); var goHref = url.split("?")[0]; var attrMessage = url.split("?")[1].split("&"); var formObj = $("<form></form>"); formObj.attr("action", goHref); formObj.attr("method","POST"); for(var i=0;i<attrMessage.length;i++){ var my_input = $('<input type="text" />'); my_input.attr("name",attrMessage[i].split("=")[0]); my_input.attr("value",attrMessage[i].split("=")[1]); formObj.append(my_input); } formObj.submit(); return false; }); }
formName只是为了确定a标签是在哪一个标签下方进行公用。
这一段代码只是进行了简单的字符切割,将对应的数据创建保存到表单中即可。
思维很清晰,代码很凌乱。