【问题标题】:Classic ASP not picking up AJAX POST data经典 ASP 不接收 AJAX POST 数据
【发布时间】: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


【解决方案1】:

您将 json 指定为数据格式,但服务器的响应不是 json。如果你尝试:

Response.Write "{""myName"":""" & Request.Form("name") & """}"

你的 JS 现在是:

success: function(data) {
   alert(data.myName);
}

【讨论】:

  • 除非我非常错误,否则 contentType 是您发送 ajax 请求的数据的数据类型,在本例中是 json,我指定的数据类型返回的数据是“普通”,我也尝试过“文本”。我已经按照您的建议进行了修改,但我得到的只是“未定义”。问题不在于 ajax 如何解释返回的数据,因为在我的浏览器开发工具中,我可以看到 test1.asp 没有返回任何内容。
  • 如果在 test1.asp 上硬编码要写出的值,你会得到什么吗?
  • 是的,如果我在 test1.asp 中对响应进行硬编码,我确实会将其发送回其他页面。问题在于 test1.asp 获取发布的数据。
  • 如果您可以发布页面的整个源代码,将会很有帮助。或者如果它是很多代码,那么创建一个示例(在 jsFiddle 或密切相关的东西上),这样我们就可以看到正在发生的一切
  • 嗨乔希,这是整个代码。两者都是完整的 .asp 文件。
猜你喜欢
  • 2015-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
相关资源
最近更新 更多