简而言之:
DAO
我想将<form method="post" action="">
<textarea name="foo">bar</textarea>
</form>
的值发布为base64编码(不使用ajax来节省时间)。
详细信息:
答案 0 :(得分:3)
您可以在提交表单之前将文本值转换为Base64字符串,而无需使用window.btoa
var str = document.getElementById("foo").value;
var enc = window.btoa(str);
btoa()
方法使用base-64编码字符串。
此方法使用“ A-Z”,“ a-z”,“ 0-9”,“ +”,“ /”和“ =”字符对字符串进行编码。
有关btoa
:https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/btoa
答案 1 :(得分:1)
您不需要使用Ajax,可以使用表单的onsubmit
事件编写一个javascript处理程序,该处理程序将数据编码为隐藏的输入,并与表单一起发送(请注意,原始textarea具有否name
,因此不会在POST中发送。
function encodeSql() {
var e = document.getElementById('sql');
var t = document.getElementById('sql_base64');
t.value = encodeToBase64Somehow(e.value);
return true;
}
<form ... onsubmit="return encodeSql()">
<textarea id="sql">...</textarea>
<input type="hidden" name="sql_base64" id="sql_base64" />
</form>