HTMLページ
// in script tag
$(document).ready(function () {
var url = "list.ashx";
$.get(url + "?get", function (r1) { alert("get: " + r1); });
$.post(url + "?post", function (r2) { alert("post: " + r2); });
$.ajax(url + "?ajax", function (r3) { alert("ajax: " + r3); });
$("div:last").load(url + "?load", function (r4) { alert("load: " + r4); });
});
// in body tag
<div></div>
'list.ashx'で
public void ProcessRequest (HttpContext context) { context.Response.Write("ok"); }
結果
- $.getと$.postはlist.ashxに到達しますが、戻り値はありません
- $.ajaxがlist.ashxに到達しません
- $.loadは完全に成功します
問題は
- なぜ「$.load」だけが機能するのですか?
- $.getまたは$.postを機能させる方法は?
アップデート
$("input").click(function () {
$.ajax({ url: url
, context: this
, data: "ajax=test"
, cache: false
, async: false
, global: false
, type:"POST"
, processData: false
, dataType: "html"
, success: function (data) { alert(data); }
, error: function (data) { alert(data.responseText); }
});
});
常にerror:function(){}がヒットしますが、「data.responseText」は正しい結果です!!