javascriptでPOST処理を実装してみる

( Html )

セキュリティチェックでいろいろ処理を試す機会があってテストコード書くためにjavascriptのみで フォームのデータを作成して(ここではHiddenのパラメータを作成)サブミット処理をさせるものを書いてみました。

function PostSubmit() {
	this.init();
}
PostSubmit.prototype = {
	frmObject : {},
	
	init : function() 
	{
		this.frmObject = document.createElement("form");
		this.frmObject.method = "post";
	},
	
	add : function(elementname, elementvalue) 
	{
		var input   = document.createElement("input");
		input.type  = "hidden";
		input.name  = elementname;
		input.value = elementvalue;
		this.frmObject.appendChild(input);
	},
	
	submit : function(url, targetFrame)
	{
		try {
			if (targetFrame) {
				this.frmObject.target = targetFrame;
			}
		}
		catch (e) { }

		try {
			if (url) {
				this.frmObject.action = url;
				document.body.appendChild(this.frmObject);
				this.frmObject.submit();
				return true;
			} 
			else { 
				return false; 
			}
		} catch (e) {
			return false;
		}
	}
}

var frm = new PostSubmit();
frm.add('hoge', 'monge');
frm.submit('/add', 'target');

javascriptってなんでもできるんですね。コード内でFormの情報を作成できてしまうなんてバンザイです!!! あと、最近になってjavascriptでExceptionの処理ができるなんて知りました。 いままで、返り値でエラー処理の対応していたんですが、原因不明なエラーとか発せしたときは、それだけじゃ対処しきれない。そんなときは「throw」されるはずなのでそこで例外処理を行うようにする。

今回の例だと例外は発生しないけど、勉強がてら実装してみた。