ページに複数行の入力用のテキストエリアを含むフォームがあり、従来の ASP スクリプトにポストされ、次のように各行がループされます。
catlist = Split(request("catlist"),vbcrlf)
for i = 0 TO UBound(catList)
'do some stuff to each line
next
これは、HTML POST または GET 要求を使用する場合にうまく機能します。しかし今、フォームの代わりに jQuery $.get を使用するようにテキストエリアを含むページをやり直そうとしていますが、テキストエリアからの改行を処理できないようです。テキストエリアに次が含まれているとします。
test1
test2
送信ボタンを押すと、次の関数が実行されます。
function add() {
var thetext = $("#thefield").val();
$.get("task.asp", {action:"add",thetext:thetext});
}
それはただクラッシュし、予期しない不正なトークンを私に与えます(改行のために-単一行の入力で正常に動作します)。
したがって、代わりに関数を次のようにします。
function add() {
var thetext = encodeURIComponent($("#thefield").val());
$.get("task.asp", {action:"add",thetext:thetext});
}
これはスクリプト エラーなしで処理されますが、サーバー側で request("thetext") を実行すると、次を含む 1 行しか受信しません。
test1%0Atest2%0A
通常の Javascript (非 ajax) を使用し、encodeURI を使用してクエリ文字列を送信する場合、サーバー側で追加の復号化を行う必要はありません。クラシック ASP は常にそれを自動的に処理します。しかし、何らかの理由でこの $.get メソッドを使用すると、エンコードされたままになります。
サーバー側のスクリプトを手動デコードに変更せずにこれを機能させる方法はありますか?