在html上,有時候我們是自己用javascript定義GET字串作發送的,像是test?a=1&b=2這樣子的形式。然後再利用eval作法送出去,作法像下面的樣子。
var code=”location=test?a=1&b=2”;
eval(code);
後來基於某種原因,希望改成用POST方式傳送。在不改變原有form的前提下,有人說可以利用xmlHttpRequest方式傳送,但我認為這方式只能在背景執行,對於一些像真正submit的form需要換頁而言並不適用。後來我有找到利用javascript即時建立一個隱藏form的方式傳送,我認為這是最好的解法。改寫了一些適合我的程式碼。
<script language=javascript>
var para="a=1&b=2";
function submitFrm(){
para_array = para.split('&');
var postForm = document.createElement("form");
postForm.setAttribute("method", "post");
postForm.setAttribute("action", "test");
var i=0;
for(i=0;i<para_array.length;i++){
hash_array=para_array[i].split('=');
var hiddenField = document.createElement("input");
hiddenField.setAttribute("name", hash_array[0]);
hiddenField.setAttribute("value", hash_array[1]);;
hiddenField.setAttribute("type", "hidden");
postForm.appendChild(hiddenField);
}
document.body.appendChild(postForm);
postForm.submit();
}
</script>
沒有留言:
張貼留言