【问题标题】:Ajax and VbScript: fetching Post variable in test.aspAjax 和 VbScript:在 test.asp 中获取 Post 变量
【发布时间】:2026-01-12 06:15:01
【问题描述】:

当前我正在尝试为我的网站使用 ajax ......因为数据大小不受限制,我需要使用 post 方法将数据发送到数据库,但问题是我无法获取 Post test.asp 中的变量

这是我正在使用的脚本

function SaveData(content ) 
{
    var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    msg=xmlhttp.responseText;
    alert(msg);
    }
  }

 var para = encodeURIComponent("content="+content)
xmlhttp.open("POST","test.asp",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
xmlhttp.send(para)

}

这里是 test.asp 代码

t = Request.form("content")
Response.write(t)

请帮我解决在 test.asp 中获取 Post 方法变量的问题

如果可能的话,任何人都可以在 asp classic 中使用 post 方法共享 jquery ajax 代码,这也会有所帮助

【问题讨论】:

  • 您是否尝试过仅对content 的值进行编码?即var para = "content=" + encodeURIComponent(content);

标签: javascript ajax post vbscript asp-classic


【解决方案1】:

你需要改变这个:

var para = encodeURIComponent("content="+content)

进入这个:

var para = "content=" + encodeURIComponent(content);

实际上,您正在向服务器提交类似这样的内容:

content%3Dtest%20data%20123

使用调整后的代码行,您提交的是这样的内容,应该是这样的:

content=test%20data%20123

您是否考虑过使用 jQuery 等 JavaScript 库?图书馆将abstract away所有这些不愉快:

$.post("test.asp", { 'content': content }, function(data) {
    alert("Returned data: " + data);
});

【讨论】:

  • 还编辑了帖子中的错误,感谢您指出错误
  • @NewbieFreak:我用我发现的另一个问题更新了我的答案。
  • 非常感谢,我已经测试了您的解决方案,它需要一个魅力...:D 非常感谢
  • 没问题!我注意到您在原始问题中要求使用 jQuery sn-p,因此如果您需要,我添加了它。