2017-10-11 17 views
0

従来のASPではRequest.Formを使用して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> 

2ページ目:(test1.asp)

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

私が代わりにAJAXの標準的なHTMLフォームを使用して、2ページ目を呼び出す場合、それはなしでそれをピックアップ問題:例:

<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

は、ASPページのtest1.aspへの呼び出しアヤックスが呼び出された場合、デバッグブラウザ上で参照するか、無ましましたか? "第2ページ"はtest1.aspですか? –

+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は 'plain'私は「テキスト」を試しました。私はあなたが示唆した変更を加え、私が警告するのは「未定義」です。私のブラウザの開発ツールでは、test1.aspが何も返さないことがわかるので、問題は返されたデータをajaxがどのように解釈しているかではありません。 – TimothyF

+0

test1.aspで書き出す値をハードコードすると何かが得られますか? –

+0

はい、test1.aspでレスポンスをハードコードすると、他のページに返信されます。問題は、test1.aspが投稿されたデータを取得することにあります。 – TimothyF

関連する問題