2017-10-11 219 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