从jQuery $ .get调用的经典ASP页面不会解码换行符

时间:2013-05-14 03:52:11

标签: jquery ajax asp-classic

我在页面上有一个包含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方法,它会保持编码状态。

如果不将服务器端的脚本更改为手动解码,是否可以使用此工作?

1 个答案:

答案 0 :(得分:0)

%0A是换行符

如果您在Windows上查看带有换行符的文本,它将看起来像1行。

所以尝试将ASP更改为

catlist = Split(request("catlist"),vblf)