昔やってたClassic ASPの案件を思い出してるうち、「あーあれAjaxでやれたらもっとシンプルになったんじゃないかなー」などと思ってしまい、Classic ASPでAjaxをやる方法を調べた。
フロントサイドのコード
index.asp
にアクセスしたらHTMLとJSを出力します。
index.asp
<%@ LANGUAGE="VBScript" %>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="shift_jis">
<title>Document</title>
</head>
<body>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="./index.js"></script>
</body>
</html>
index.js
からjQueryのajaxを使ってGETを投げています。POSTも同様にできるかと思います。
index.js
(function(){
$ = window.$;
$.ajax({
type:"GET",
url: "ajax.asp",
dataType: "json",
data: {name: "Hoge"}
}).done(function(msg){
document.writeln(Object.keys(msg) + ": " + msg.name);
});
}());
サーバーサイドのコード
Response.Write
でJSONを出力します。
なお、JSONは文字列を整形して無理やりJSON形式にするしかなさそうです。
POSTのときはRequest.QueryString
ではなくRequest.Form
になります。
ajax.asp
<%@ LANGUAGE="VBScript" %>
<%
Response.ContentType = "application/json"
Dim ret
If(Request.QueryString("name") = "Hoge") then
ret = "{""name"": ""Huga""}"
End If
Response.Write(ret)
%>
まとめ
Classic ASPでのAjaxの実現方法でした。使う機会はおそらくないでしょう。