【问题标题】:Retrieve ajax formData on classic asp page?在经典的asp页面上检索ajax formData?
【发布时间】:2024-01-08 23:20:01
【问题描述】:

我正在使用 ajax 向我的 asp 经典页面发送数据 - 使用 new FormData() 我的警报显示 [object FormData] 所以应该是对的? 但我试图在我的成功警报中显示我的 asp 页面中的变量“folderName”,但它没有显示任何内容。

那么如何在我的 asp 页面上接收 formData?

这就是我现在拥有的

var formData = new FormData($$(page.container).find('#pdffile')[0]);
formData.append("folderName", "manmade");
myApp.alert(formData); //this shows [object FormData]

$$.ajax({
method: 'POST',
url: 'dokument/dokument2.asp',
//processData: false,
//contentType: false,
enctype: 'multipart/form-data',
data: formData,
       success: function (data) {
           myApp.alert(data)//I get nothing in the alert?
        }

        });

        return false;
});

在我的 asp 页面中,我只使用 request.form!?

<%
folderName = request.form("folderName")
%>
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
    <%=folderName%>
</body>
</html>

我不知道为什么我无法在我的 asp 页面上接收到变量? 任何意见都非常感谢,谢谢。

【问题讨论】:

  • 如果dokument2.asp的目的是填充一个js警报,那么html(而不是纯文本或xml)是输出的正确格式吗?
  • 我没有看到代码有明显问题,您是否确认您实际上正在发送您可以使用 firebug、开发人员工具或 fiddler 执行的数据?
  • 约翰,如果我只用 - data:some 变量发送它,那么我会在警报中得到它,但如果我使用 formData 则不会?
  • Rafael,我不确定,我在 safari 中查看网络检查器,它说它已发送 459 B,但我不确定?我不太确定要寻找什么?

标签: javascript jquery vbscript asp-classic form-data


【解决方案1】:

为第二个 asp 文件试试这个


<%
folderName = request.form("folderName")
%>
<%= folderName%>

符合

enctype: 'multipart/form-data' 

必须删除第一个文件。如果没有特殊的库,您将无法从 asp 访问 multipart/form-data ...

【讨论】:

  • DimaSun,不,它不工作。无论我做什么,我都会在 asp 页面上的警报中注意到。我试图上传一个 .pdf 文件并将其保存在我的服务器上,但是当我测试只是在警报中获取 folderName 变量时,我什么也没得到?我只是不知道我哪里出错了?
  • 没错,你需要一个组件来上传,我记得一个叫 freeaspupload idk 还在那儿
  • 拉斐尔。好的,我有一个名为 aspsmartupload 的组件,如果我在没有 ajax 的情况下发布表单,那么我可以保存 .pdf 文件,但如果我使用 ajax 进行操作,它不起作用,它找不到带有文件的表单字段.我使用 mySmartUpload.files.item(1).saveas("path/filename") 当我在没有 ajax 的情况下发布然后保存它,但不使用 ajax?
  • Claes,你有想过这个吗?我正在处理非文件上传,但 ajax 以未填充 request.form 的格式发回。我认为它与内容类型相关,但我无法更改它,因为它是我无法控制的设置脚本。对于任何反馈,我们都表示感谢!!!谢谢你:)