HTTPハンドラでPOSTした値を受け取る方法

このQ&Aのポイント
  • C♯でASP.NET環境にて開発をしています。htmlにボタン(submit)を置いて、postが来たら、ashx(HTTPハンドラ)のほうでリクエスト値を見てDBから値を取り、結果を返したいと思っています。結果については、JavaScriptのほうでinnerHTMLを使って反映させる予定です。
  • オンロードでJavaScriptのメソッドを呼んでるんですが(body onload = 'test();')、(input type hiddenでいくつかの値がpostされるようになっています)こんな感じでashxを呼んでるものの、htmlでpostした値が受け取れません。context.Request.Querystringで取ろうとしてるんですが…htmlでリクエストした際に、JavaScriptを呼んで、そこでajaxリクエストをしているという作りがまずいのでしょうか?
  • HTTPハンドラを使うのが始めてなので、頓珍漢なことをしているかもしれませんが、ご教授いただけると助かります。
回答を見る
  • ベストアンサー

HTTPハンドラでPOSTした値を受け取りたい。

C♯でASP.NET環境にて開発をしています。 htmlにボタン(submit)を置いて、postが来たら、ashx(HTTPハンドラ) のほうでリクエスト値を見てDBから値を取り、結果を返したいと思っています。 結果については、JavaScriptのほうでinnerHTMLを使って反映させる予定です。 オンロードでJavaScriptのメソッドを呼んでるんですが (body onload = "test();") (input type hiddenでいくつかの値がpostされるように なっています) function test() { var ret = new Ajax.Request('GetValue.ashx'),{ method:'post' … } こんな感じでashxを呼んでるものの、htmlでpostした値が 受け取れません。 context.Request.Querystringで取ろうとしてるんですが… htmlでリクエストした際に、JavaScriptを呼んで、そこでajaxリクエストをしている という作りがまずいのでしょうか? HTTPハンドラを使うのが始めてなので、頓珍漢なことをしているかも しれませんが、ご教授いただけると助かります。 宜しくお願いします。

  • ginfix
  • お礼率34% (330/962)

質問者が選んだベストアンサー

  • ベストアンサー
  • onos
  • ベストアンサー率81% (127/155)
回答No.1

Request.QueryString はクエリ文字列で渡されたデータを取得するためのメソッドです。 POSTで送ったらクエリ文字列にはならないですよね。 Request.Formを使いましょう。

関連するQ&A

  • 関数の中の値を取り出したい

    prototype.jsを使って送信して返ってくるデータを、 onCompleteの関数の中で「ret」に値を入れてると思うのですが、 出ててきたときにはalertで表示されません。 どうすればこの形でその関数の中の値を取り出すことができるのでしょうか? function get_data() { ret = ""; new Ajax.Request( "test.php", { method: "get", parameters: "test=aaa", onComplete: function(httpObj){ ret = httpObj.responseText; } } ); alert(ret); return ret; }

  • 画面上のコントロールの値が取れない。

    JavaScriptで画面上のコントロールの値をすべて取得して、 HTTPハンドラ(C♯で作成)をリクエストし、計算結果を持ってきたいと思っています。 以下のように作りました。 $(function(){ $("[type='button']").click(function(){ var postData = {}; $("[name='specForm']").find(':input').each(function(){ postData[$(this).attr('name')] = $(this).val(); }); $.ajax({ type: "POST", url: "test.ashx", data: postData, dataType: "json", success: function(data, dataType){ $("span.testspan").text(data.value); } }); }); }); しかし、テキストボックスの値は取れるのですが、チェックボックスが どうやっても「on」という値でPOSTされて来てしまうので、困っています。 きちんと値を取るにはどのように書けば良いか、ご教授いただけないでしょうか。

  • Rubyでnet::httpを用いてPOSTする

    今晩わ。 RubyでNet::HTTPをもちいてPOST送信する際の処理について 質問です。 Net::HTTPクラスのインスタンスメソッドのpostメソッドを用いて送信する場合 送信内容を # version 1.2 (Ruby 1.8.x or later) response = http.post('/cgi-bin/search.rb', 'query=subject&target=ruby') 上記のように、引数に渡していると思います。 このとき、値の中にパラメータのデリミタと同じ&を入れたい場合どうしたらいいのでしょうか? 例えば query=subject&target=ruby&PHP のような感じでvalueとして&を渡す場合です。 Net**HTTP::Postクラスのrequestメソッドを用いてハッシュとして渡した時は問題なかったのですが、上記のpostメソッドの時がPOSTされた値を取得するときにキチンと取得できませんでした。これはなにか対処方法があるのでしょうか? ご教授ください。 おねがいします。

    • ベストアンサー
    • Ruby
  • IISでPOSTリクエストのエラー

    IISでPOSTリクエストを実行すると、HTTP エラー 405.0 - Method Not Allowed 無効なメソッド (HTTP 動詞) が使用されているため、検索しているページを表示できません。 が表示されててしまいます。 IISのハンドラマッピングで  要求パス:*.html  モジュール:ServerSideIncludeModule  ハンドルする動詞:次の動詞のうちひとつ(GET,POST)  アクセス:スクリプト に設定してます。 他に設定があるのか教えてください

  • Request.QueryString への値の代入。

    Request.QueryString("hoge") = Request.QueryString("hoge") + 1 上記のようなクエリーストリング自体に値を代入するためにはどうしたらよいですか? 上記のコードでは Microsoft VBScript 実行時エラー エラー '800a01b6' オブジェクトでサポートされていないプロパティまたはメソッドです。: 'Request.QueryString' となります。 ASP1.X+IIS5です。よろしくおねがいします。

  • Ajax.Requestで?を含むパラメータがPOSTできなくて、困っています

    はじめまして、ajaxはほとんど初心者です。 早速質問させていただきます。 javascriptで var paramList = "link=aaa?bbb"; new Ajax.Request(url, { method: 'post', onSuccess: getData, onFailure: showErrMsg, parameters: paramList }); と入力して $_POST["link"]でパラメータを受け取ろうとしても、うまく受け取ることができません。 var paramList = "link=aaabbb"; として試してみたらうまく受け取れたので、 おそらく?に何かあると思い調べてみたのですがよくわかりませんでした。 "aaa?bbb"という文字列をそのままpostする方法はあるのでしょうか? わかる方がいらっしゃったら回答をよろしくお願いします。

  • jqueryの$.ajaxでPHPに値を渡したい

    下記の様にjquery(ver1.4.x)の$.ajax関数を使って、 ajaxでPHPに値を渡したいと思っています。 ■Javascript (中略) $.ajax({ type:"POST", url:"test.php", data:{"check":check}, success:function(){ alert("OK"); } }); ■PHP(test.php) if ($_POST) { $_SESSION["data"][] = $_POST["check"]; } この時、普通の状態ならtest.phpで値が受け取れ、$_SESSION["data"]の配列内には$_POST["check"]の値が格納される事を確認しました。 しかし、ブラウザのCookieを無効(ブロック)に設定した場合のみ、$_SESSION["data"]の中には$_POST["check"]の値が入らないのです。 session_start();はJavascriptのあるHTML、test.php両方に書かれています。 クッキー無効の場合はJavascript(ajax)-PHP間でセッションは切断されてしまうのでしょうか? php.iniの設定では session_use_cookiesもsession_use_only_cookiesもOnになっています。 詳しい方おられましたらご教授宜しくお願いします。

    • ベストアンサー
    • PHP
  • 特定の値をPOST送信で他のサーバーに渡したい

    あるPHPページを自動転送ページとし、転送先に特定の値をPOST送信したいと考えています。 同じような質問があり、fsockopenを使ってすると良いようなのですが、どうしても上手くいきません。 現状、POST送信は成功しているのですが、URLが自動転送ページのままで、転送先ページのテキストのみが表示されている状態です。 どうすれば転送先ページに完全に移ってしまえるでしょうか。 ご助力下さい。 <ソース> $url = "http://hoge.co.jp/test.php";  //転送先URL $method = "POST"; $headers = "POST http://hoge.co.jp/test.php HTTP/1.1\r\n";  //転送先URL $postdata = "parm=ok"; $URL = parse_url($url); if(!isset($URL['port'])){$URL['port'] = 80;} //リクエストヘッダ $request = $method." ".$URL['path']." HTTP/1.0\r\n"; $request .= $headers; $request .= "Host: ".$URL['host']."\r\n"; $request .= "User-Agent: PHP/".phpversion()."\r\n"; $request .= "Content-Type: application/x-www-form-urlencoded\r\n"; $request .= "Content-Length: ".strlen($postdata)."\r\n"; $request .= "\r\n"; $request .= $postdata; //相手サーバへ接続 @$fp = fsockopen($URL['host'], $URL['port']); // 接続失敗 if (!$fp) {die("ただいまメンテナンス中です。\n");} //POSTで送信 fputs($fp, $request); $response = ""; while (!feof($fp)) { $response .= fgets($fp, 4096); } fclose($fp); //ヘッダ部分とボディ部分を分離 $DATA = split("\r\n\r\n", $response, 2); //出力 echo "<!--\n".$request."\n-->\n"; echo "<!--\n".$DATA[0]."\n-->\n"; echo $DATA[1];

    • ベストアンサー
    • PHP
  • postで送信できないんです

    oracle plsqlで開発しています。 htmlからpostでプロシジャーに値をわたしていますが、 パラメータが渡っていないようです。 エラーページでREQUEST METHOD=GETと表示されてしまいます。 getで送るとページが表示されるのですが・・・ formタグのmethod=postにすればREQUEST METHODには自動的にPOSTがはいると 思っていたのですが、どこかで設定しなければいけないのでしょうか。 とても困っています。 どなたか教えてください。

    • 締切済み
    • CGI
  • jQueryの$.postの戻り値による条件分岐

    jQueryの$.postにてPHPファイルをリクエストしています。 Ajax→PHPの処理後、Ajaxに処理が戻る際にPHPからAjaxに 値を受け渡し、さらにその値によってAjaxの処理を条件分岐させたい場合 どのような記述になるのでしょうか。 PHPからの戻り値は単なるテキストかtrue/falseで考えています。 それとも、そもそも$.postでは戻り値を処理する、 といった事はできないのでしょうか。

    • ベストアンサー
    • AJAX

専門家に質問してみよう