$ .get,$。postt,$ .ajax,$(elm).load to .ashx page problem

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 

在’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); } }); }); 

它始终是命中错误:function(){}但是’data.responseText’是正确的结果!!

那么, $.ajax()不起作用的原因是因为它在语法上无效 。 看起来应该更像这样:

 $.ajax({ type: "POST", // or "GET" url: "list.ashx", data: "postvar=whatever", success: function(r3){ alert("ajax: " + r3); } }); 

此外,当使用$.get$.post ,您应该将数据放在第二个参数中:

 $.get(url, 'getvar=whatever', function (r1) { alert("get: " + r1); }); $.post(url, 'postvar=whatever', function (r2) { alert("post: " + r2); }); // or use a map $.get(url, { getvar : 'whatever' }, function (r1) { alert("get: " + r1); }); $.post(url, { postvar : 'whatever' }, function (r2) { alert("post: " + r2); }); 

由于您将一个异步请求一起发送到同一页面,因此这可能是相关的:

  • 流行的浏览器允许多少并发AJAX(XmlHttpRequest)请求?