【发布时间】:2017-10-11 07:23:54
【问题描述】:
我在使用 Request.Form 在经典 ASP 中接收来自 AJAX POST 请求的数据时遇到问题。这是我最简单的代码。它什么也不返回。
首页:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$.ajax({
url: "test1.asp",
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "plain",
data: { name: "Hello" },
success: function(data) {
alert(data);
}
});
</script>
</head>
<body>
</body>
</html>
第二页:(test1.asp)
<%
Response.Write Request.Form("name")
%>
如果我使用标准 HTML 表单而不是 AJAX 调用第二个页面,它会毫无问题地获取它,例如:
<html>
<body>
<form id="thisForm" method="POST" action="test1.asp">
<input type="hidden" name="name" value="Hello"/>
</form>
<script>
document.getElementById("thisForm").submit();
</script>
</body>
</html>
我的代码有问题还是可能是服务器配置问题?
【问题讨论】:
-
您是否在调试浏览器上看到了对 ASP 页面 test1.asp 的调用 ajax 是否被调用?而“第二页”是test1.asp?
-
如果省略
contentType和dataType会发生什么? -
我可以看到 test1.asp 已经被调用了。请求负载显示“name=Hello”,但没有响应。
-
如果我删除 contentType 和 dataType,我仍然一无所获。
-
您最好的选择是按 F12 键启动浏览器的开发者工具,检查网络选项卡以查看呼叫是否已发送,以及响应是什么。
标签: jquery ajax asp-classic