2017-10-11 59 views
0

我在使用Request.Form的传统ASP中从AJAX POST请求接收数据时遇到问题。这是我的代码最简单。它什么都不返回。经典的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> 

我的代码有问题吗?或者这可能是服务器配置问题?

+0

?你在调试浏览器或查看是否调用AJAX的ASP页面test1.asp被称为没有?和“第二页”是test1.asp? – 2017-10-11 07:29:00

+0

如果你省略'contentType'和'dataType',会发生什么? – SearchAndResQ

+0

我可以看到test1.asp已被调用。请求有效载荷说'name = Hello'并且没有响应。 – TimothyF

回答

0

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

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

和你现在的JS是:

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

除非我非常误解,contentType是您发送ajax请求(在本例中为json)的数据的数据类型,我为返回的数据指定的dataType是'纯文本' ,我也试过'文字'。我已经做出了您建议的修改,并且我收到的所有提醒都是'未定义'。问题不在于ajax如何解释返回的数据,因为在我的浏览器开发工具中,我可以看到test1.asp没有任何返回。 – TimothyF

+0

如果你在test1.asp中编写了一个需要写出来的值,你会得到什么吗? –

+0

是的,如果我在test1.asp中硬编码响应,我确实会将它发送回其他页面。问题出在test1.asp提取发布的数据。 – TimothyF