| ■No97938 (???? さん) に返信
話が通じなくてラチがあかないので、ここまで書けばわかるだろうということを書いておきます。
以下のコードで[POST] ボタンをクリックすると、質問者さんがやったのとほぼ同様に jQuery ajax
を使って 2 つのテキストボックスの value が送信されます。value に "a", "14" が設定済みなのに
注意。fd.append(...) がコメントアウトしてあるところにも注意。
<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="WebForm20.aspx.cs"
Inherits="WebApplication1.WebForm20" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="Scripts/jquery-3.4.1.js"></script>
<script type="text/javascript">
//<![CDATA[
$(function () {
$('#ajaxPost').on('click', function (e) {
var fd = new FormData(document.querySelector("form"));
//fd.append("Hf_TargetId", "a");
//fd.append("Txt_Marche", "14");
$.ajax({
url: '/myapp/ajaxposthandler.ashx',
method: 'post',
data: fd,
processData: false,
contentType: false
}).done(function (response) {
$("#result").empty;
$("#result").text(response);
}).fail(function (jqXHR, textStatus, errorThrown) {
$("#result").empty;
$("#result").text('textStatus: ' + textStatus +
', errorThrown: ' + errorThrown);
});
});
});
//]]>
</script>
</head>
<body>
<form id="form1" runat="server">
<h1>POST by jQuery ajax</h1>
<input id="Hf_TargetId" name="Hf_TargetId" type="text" value="a" />
<input id="Txt_Marche" name="Txt_Marche" type="text" value="14" />
<input id="ajaxPost" type="button" value="POST" />
<div id="result"></div>
</form>
</body>
</html>
Fiddler で要求をキャプチャすると以下のようになります。name が Hf_TargetId および Txt_Marche
の値をみてください。期待通り a と 14 が送信されている点に注目。
POST https://localhost:44364/myapp/ajaxposthandler.ashx HTTP/1.1
Host: localhost:44364
Connection: keep-alive
Content-Length: 563
・・・中略・・・
Accept-Language: ja,en-US;q=0.9,en;q=0.8,de;q=0.7
------WebKitFormBoundarytZhyclsKu5e6ksnm
Content-Disposition: form-data; name="__VIEWSTATE"
5D7jXYvhFvOqzAXeQ9Fhx6EZQH4YNXu1IpYJfdF6lv0e1Co7QhFQvebPCBzep0Gm3poGqNRLkxf/jI1yz2PHo9cupCkPckCVknXSZx8ii10=
------WebKitFormBoundarytZhyclsKu5e6ksnm
Content-Disposition: form-data; name="__VIEWSTATEGENERATOR"
B928ED7D
------WebKitFormBoundarytZhyclsKu5e6ksnm
Content-Disposition: form-data; name="Hf_TargetId"
a
------WebKitFormBoundarytZhyclsKu5e6ksnm
Content-Disposition: form-data; name="Txt_Marche"
14
------WebKitFormBoundarytZhyclsKu5e6ksnm--
上の aspx のコードの fd.append(...) のコメントアウトを解除して同じことを行うと name が
Hf_TargetId および Txt_Marche の部分は以下のようにダブります。
------WebKitFormBoundaryudm7lpE3oJMs1sMc
Content-Disposition: form-data; name="Hf_TargetId"
a
------WebKitFormBoundaryudm7lpE3oJMs1sMc
Content-Disposition: form-data; name="Txt_Marche"
14
------WebKitFormBoundaryudm7lpE3oJMs1sMc
Content-Disposition: form-data; name="Hf_TargetId"
a
------WebKitFormBoundaryudm7lpE3oJMs1sMc
Content-Disposition: form-data; name="Txt_Marche"
14
------WebKitFormBoundaryudm7lpE3oJMs1sMc--
これが、原因でしょう。自信度 99.99% ぐらい。 |