app上的form跳轉(zhuǎn)
app上的form跳轉(zhuǎn)
起原: 當(dāng)時因為是測試銀聯(lián)百科,證書是測試證書,所以沒有在app中走流程,在手機瀏覽器端走的流程,當(dāng)流程一切都o(jì)k的時候,正式的證書也下來的,我們滿心歡喜的在app上走一遍,本感覺已經(jīng)萬事大吉了,沒想到在ios中出現(xiàn)了問題,在安卓中一切都好 程序流程: 當(dāng)用戶輸入金額后,選擇銀聯(lián),點擊充值,前端會調(diào)后臺的接口,成功后,后臺返回一個html, (html是銀聯(lián)那邊返回的,我們無權(quán)修改) 前端這邊解析html,拿到form表單,將form表單放入當(dāng)時頁面中body的**部,提交表單,提交方式是post。 問題: ios中跳轉(zhuǎn)銀聯(lián)的時候,會報501的錯誤,安卓沒有問題 過程: 報501錯誤,立馬問了下**,**人員說,501是因為提交的方式不對,是get提交,應(yīng)該是post提交, 本以為是不是ios這里修改了提交的方式,和ios人員溝通后,ios人員說沒有修改過; 又以為是ios原生會修改form提交方式,又用ios原生瀏覽器測了下,沒有問題,與ios人員再次溝通后,雙方從自己的角度去看看有沒有辦法去解決這個問題; 由是想,前端這里能不能把form提交修改成ajax的提交方式,我們這里把form拆解,將接口用ajax的方式提交,但是發(fā)生了跨域問題,因為是post方式,需要后臺做相關(guān)處理,但是后臺是銀聯(lián)那里的,不會因為我們這里去修改東西;ios那里也沒有解決掉; 時間已經(jīng)不早了,我們各自先回,待明日再戰(zhàn)。
晚上難以入眠,一直再想這個問題,為什么會這樣?。槭裁?忽然靈光乍現(xiàn),想到是不是因為ios在這里新開頁面的問題, (因為ios打開web前端頁面是新開,而安卓是在當(dāng)前頁面打開) form提交,ios會打開新的頁面,這樣就是get提交,所以會報501。
請問為什么表單提交,在表單中沒有填寫數(shù)據(jù),點擊提交也會跳轉(zhuǎn)
要在 form 沒有數(shù)據(jù)的時候禁止跳轉(zhuǎn),可以使用表單的 onsubmit 事件在提交時檢測 form 表單中的內(nèi)容是否是你想要的內(nèi)容,以下是簡單示例
<!DOCTYPE?html><html?lang=\”zh-CN\”>?<head>?<meta?charset=\”utf-8\”>?<title>Form?校驗</title>?<script>?function?CheckForm(form)?{?if(form.username.value?==?\”\”)?{?alert(\’名字總要填一個吧!\’);?form.username.focus();?return?false?}?return?true;?}?</script>?</head>?<body>?<form?name=\”form1\”?id=\”form1\”?action=\”\”?method=\”post\”?onsubmit=\”CheckForm(this)\”>?<input?type=\”text\”?name=\”username\”>?<input?type=\”submit\”?value=\”?提交\”>?</form>?</body></html>
html的form提交之后,是如何進行跳轉(zhuǎn)的?整個過程瀏覽器是如何實現(xiàn)的?
form表單的action 與url跳轉(zhuǎn)是不一樣的: form表單可以給后臺傳遞數(shù)據(jù),在后臺直接可以用request對象去向前臺請求數(shù)據(jù)。 form表單傳遞數(shù)據(jù)有兩種方式: method=\”post\”:這是傳遞大量數(shù)據(jù)時用的,在數(shù)據(jù)傳遞之前會先將數(shù)據(jù)打包,因此這種傳遞數(shù)據(jù)的方式會效率會比較慢,但是穿過的數(shù)據(jù)都能正確解析,因此傳中文不會有亂碼。
method=\”get\”:以URL傳遞的,因為地址欄長度有限,所以對數(shù)據(jù)量是有限制的,而且傳遞的數(shù)據(jù)必須是ASCCI碼值范圍內(nèi)的,因此,傳中文會有亂碼,需特殊處理。
html form提交的地址為什么不是action里面那個地址,而是跳轉(zhuǎn)到首頁?
for
asp.net中為什么我提交Form表單 還是跳轉(zhuǎn)到本頁呢 ?
你沒有提交按鈕,所以并沒有提交 ,改成這樣再試試:<form name=\”alipayment\” method=\”post\” runat=\”server\” target=\”_blank\” action=\”alipayto.aspx\”> <input type=\”image\” src=\”IMG/button_sure.gif\” value=\”確認(rèn)訂單\” name=\”nextstep\” onclick=\”submit()\” /></form>