注意点は2点!
- リクエストヘッダのContent-Typeに"application/x-www-form-urlencoded"を追加!
- 日本語を送信する場合は、必ずescape処理を!
※encodeURIやencodeURIComponentなどがありますが、これだと文字化けしたためescape関数を使用しています。
var snddata = "hoge=" + escape("あいうえお123abc");
xmlhttp.open("POST", hoge.asp, true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlhttp.send(snddata);
※openの3番目の引数はtrueじゃないとダメ!
★ASP側サンプル
var rcvdata = Request.Form("hoge");
Response.ContentType = "text/html";
Response.Charset = "SHIFT-JIS";
Response.Write(rcvdata);
GETだとデータ量の上限にひっかかる場合があったので・・・