0

我在页面上有一个包含文本区域的表单,用于发布到经典 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});
}

这在没有任何脚本错误的情况下通过,但是当我在服务器端请求(“thetext”)时,我只收到一行包含:

测试1%0测试2%0A

当我使用常规 Javascript(非 ajax)并使用 encodeURI 提交查询字符​​串时,我不必在服务器端进行任何额外的解密,经典的 ASP 总是自动处理它。但是由于某种原因,这个 $.get 方法会保持编码状态。

有什么方法可以在不将服务器端的脚本更改为手动解码的情况下完成这项工作?

4

1 回答 1

0

%0A是换行符

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

所以尝试将您的 ASP 更改为此

catlist = Split(request("catlist"),vblf)
于 2013-05-14T04:12:48.953 回答