我在页面上有一个包含textarea的表单,用于多行输入,发布到经典ASP脚本,然后循环遍历每一行:
catlist = Split(request("catlist"),vbcrlf)
for i = 0 TO UBound(catList)
'do some stuff to each line
next
使用HTML POST或GET请求时,此工作正常。但是现在我试图重做包含textarea的页面来使用jQuery $ .get而不是表单,它似乎无法处理来自textarea的换行符。假设textarea包含:
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});
}
这没有任何脚本错误,但是当我在服务器端请求(" text")时,我只收到一行包含:
TEST1%0Atest2%0A
当我使用常规Javascript(非ajax)并使用encodeURI提交查询字符串时,我不必在服务器端进行任何额外的解密,经典ASP总是自动处理它。但由于某种原因,使用这种$ .get方法,它会保持编码状态。
如果不将服务器端的脚本更改为手动解码,是否可以使用此工作?
答案 0 :(得分:0)
%0A
是换行符
如果您在Windows上查看带有换行符的文本,它将看起来像1行。
所以尝试将ASP更改为
catlist = Split(request("catlist"),vblf)