2013-03-10 40 views
0

我有以下腳本,從底部開始有幾行,我有一個window.location.href,它通過地址欄從我的表單發佈了reults。這很麻煩,我想使用POST而不是GET,任何想法的人?當我需要POST時使用GET的window.location.href

<script language="javascript"> 
function OnChangedUsername() 
{ 
    if(document.signup.newuserid.value == "") 
    { 
    document.signup.btnCheckAvailability.disabled = true; 
    } 
    else 
    { 
    document.signup.btnCheckAvailability.disabled = false; 
    } 
} 
function createRequestObject() { 
    var ro; 
    var browser = navigator.appName; 
    if(browser == "Microsoft Internet Explorer"){ 
    ro = new ActiveXObject("Microsoft.XMLHTTP"); 
    }else{ 
    ro = new XMLHttpRequest(); 
    } 
    return ro; 
} 

var http = createRequestObject(); 

function sndReq() { 
    http.open('get', 'password_check.asp?emailaddress=<%Response.Write(emailaddress)%>&check=<%Response.Write(check)%>&password_check='+document.signup.newuserid.value); 
    http.onreadystatechange = handleResponse; 
    http.send(null); 
} 

function handleResponse() { 
    if(http.readyState == 4){ 
    var response = http.responseText; 
    var update = new Array(); 

    if(response.indexOf('|' != -1)) { 
     update = response.split('|'); 
     document.getElementById("username_chk").innerHTML = update[0]; 


     if(document.getElementById("username_chk").innerHTML == "Ok") { 
     window.location.href='detailsupdate.asp?username=<%Response.Write(sUsername)%>&check=<%Response.Write(check)%>&EmailAddress='+document.signup.EmailAddress.value+'&Address='+document.signup.Address.value+'&Address1='+document.signup.Address1.value+'&Address2='+document.signup.Address2.value+'&City='+document.signup.City.value+'&PostalCode='+document.signup.PostalCode.value+'&Country='+document.signup.Country.value+'&WorkPhone='+document.signup.WorkPhone.value+'&HomePhone='+document.signup.HomePhone.value+'&MobilePhone='+document.signup.MobilePhone.value+'&FaxNumber='+document.signup.FaxNumber.value+'&AlternativePhone='+document.signup.AlternativePhone.value+'&OO='+document.signup.OO.checked+'&Workshop='+document.signup.Workshop.checked+'&Raised='+document.signup.Raised.checked+'&Ground='+document.signup.Ground.checked+'&pd='+document.signup.newuserid.value+'&Tram='+document.signup.Tram.checked; 
     } 
    } 
    } 
} 
</script> 

回答

1

,以與直接呈現到瀏覽器窗口的響應POST請求的唯一方法就是使用表單(你與DOM生成),並提交(您可以通過DOM這樣做)。

另一種方法是使用XMLHttpRequest(或其他Ajax技術)並使用DOM呈現響應。

1

沒有必要將表單數據作爲GET數據傳遞。您可以將方法指定爲POST。

<form action="script.asp" method="post"> 
    ... 
    <input type="submit" value="submit"> 
</form> 

您也不應該使用window.location.href。這很醜陋。當你提交表單時(點擊提交按鈕)它會將你的表單數據發佈到script.asp。

提交表單的另一種方式是通過DOM提交表單。 document.forms[0].submit();

相關問題