Javascript 使用ajax发布数据

Javascript 使用ajax发布数据,javascript,ajax,asp-classic,Javascript,Ajax,Asp Classic,我正试图用ajax将几行文本保存在文本区域中,目标是一个经典的asp文件 在使用POST方法发送数据而不使用jQuery时,我不确定如何使用ajax,在这里也没有发现任何与此相关的问题,没有重复 Ajax功能: function saveDoc() {//disabled var xhttp = new XMLHttpRequest(); var note = document.getElementById("note"); xhttp.onreadystatechange = functio

我正试图用ajax将几行文本保存在文本区域中,目标是一个经典的asp文件

在使用POST方法发送数据而不使用jQuery时,我不确定如何使用ajax,在这里也没有发现任何与此相关的问题,没有重复

Ajax功能:

function saveDoc() {//disabled
var xhttp = new XMLHttpRequest();
var note = document.getElementById("note");

xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
        document.getElementById("0").innerHTML = xhttp.responseText;
    }
};
xhttp.open("POST", "saveNote.asp", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send(note);
ASP经典:

set fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.OpenTextFile("c:\inetasp\1.txt",8,true)

dim note

note = RequestForm("note")
f.Write(note)
f.Close
Response.Write("Works.");

set f=nothing
set fs=nothing
我知道.asp可能有很多错误,因为我找不到任何关于如何使用经典asp正确处理ajax请求的具体信息


欢迎就如何在没有jQuery的情况下实现这一点提出任何建议。

我无法测试您的代码,因为我的机器上目前没有运行后端。但我可以告诉你一些事情:

  • 您正在调用
    xhttp.send(注意)注释
    是一个DOM元素。它应该是一个查询字符串格式的字符串
  • 在您的服务器端代码中,您调用RequestForm,它是您以前定义的自定义函数吗?通常的语法是Request.Form

希望它能通过将Notes变量更改为document.getElementById(“note”).value.toString()并更改Request.Form的type-o来帮助

修复您指出的问题,但我仍然得到相同的HTTP错误405.0-不允许使用方法。确定。。。HTTP错误405表示此资源不允许您用于请求资源的方法。在您的情况下,无法发布到saveNote.asp。看看下面的链接,有一些东西可以尝试:xhttp.send(“note=“+note.value”);您确定您实际上正在点击saveNote.asp文件,它是否与GET请求一起工作?同时将
OpenTextFile(“c:\inetasp\1.txt”…
更改为
OpenTextFile(Server.MapPath(“1.txt”)..
。原始路径中可能存在一些权限问题,而没有
服务器。MapPath
,最终的权限问题仍将存在。请尝试从浏览器访问.txt;如果它引发
未经授权的
错误,请转到文件中的安全选项卡,然后为IUSR用户添加写入权限。