2017-10-11 1 views
0

Ich habe Probleme beim Empfangen von Daten von einer AJAX POST-Anforderung in klassischem ASP mit Request.Form. Hier ist mein Code am einfachsten. Es gibt nichts zurück.Klassischer ASP, der AJAX POST-Daten nicht abruft

Erste Seite:

<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> 

Zweite Seite: (Test1.asp)

<% 
    Response.Write Request.Form("name") 
%> 

Wenn ich die zweite Seite mit einem Standard-HTML-Formular anstelle von AJAX nennen, es nimmt es mit nicht auf Problem zB:

<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> 

gibt es etwas falsch mit meinem Code oder könnte dies eine Serverkonfiguration Problem sein?

+0

haben Sie auf dem Debug-Browser sehen, ob der Anruf Ajax auf der ASP-Seite Test1.asp aufgerufen wird oder nicht? und die "Zweite Seite" ist test1.asp? –

+0

Was passiert, wenn Sie "contentType" und "dataType" weglassen? – SearchAndResQ

+0

Ich kann sehen, dass test1.asp aufgerufen wurde. Die Anfrage-Payload sagt "Name = Hallo" und es gibt keine Antwort. – TimothyF

Antwort

0

Sie geben JSON als Datenformat an, aber Ihre Antwort vom Server ist nicht JSON. was ist, wenn Sie versuchen:

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

und Ihre JS ist jetzt:

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

Wenn ich mich nicht sehr irre, ist contentType der Datentyp der Daten, an die Sie die ajax-Anfrage senden. In diesem Fall ist dies json, der Datentyp, den ich für die zurückgegebenen Daten festlege, ist "plain". Ich habe auch "Text" ausprobiert. Ich habe die Änderungen vorgenommen, die Sie vorschlagen, und alles, worauf ich aufmerksam gemacht werde, ist "undefiniert". Das Problem besteht nicht darin, wie der Ajax die zurückgegebenen Daten interpretiert, denn in meinen Browser-Entwicklungstools kann ich sehen, dass test1.asp nichts zurückgibt. – TimothyF

+0

Erhalten Sie irgendetwas, wenn Sie auf test1.asp einen Wert festschreiben, der ausgeschrieben werden soll? –

+0

Ja, wenn ich eine Antwort in test1.asp fest codiere, bekomme ich es zurück auf die andere Seite. Das Problem besteht darin, dass test1.asp die geposteten Daten aufnimmt. – TimothyF

Verwandte Themen