jquery异步调用post的一些注意事项

1.aspx网页,只要放在form标签的html按钮标签 input的type="submit",则无论form是否添加 runat="server",点击它,都会像服务器控件一样触发回发给后的.cs文件处理

例如

 <form id="form1">
    <div>
      <input class="subBtn" type="submit" />
    </div>
</form>

2.要使得在aspx网页中不回发给后台,则应采用

<form id="form1">
  <div>
    <input class="subBtn" type="button" />
  </div>
</form>

使用这种方式才能被页面内的jquery得到并采用post等异步方式传送数据到指定后台

3.asp.net中的<asp:label>标签最终在浏览器端表现的是<span>标签形式,如将传回的数据赋给它或从它那里得到数据,需要使用$("").text()方式;

asp.net中的<asp:TextBox>标签最终在浏览器端表现的是<input>标签形式,如将传回的数据赋给它或从它那里得到数据,需要使用$("").val()方式;

最后表现形式可以在生成页面查看源代码来得到

4.调试:我的调试方式是 visual studio 加.cs代码断点+firefox的firebug断点的方式,两者可以协同配合,例如,点击input类型为button标签,调用后台的加入断点的ashx文件,跳过断点后,可进入在firebug中的断点,进行调试

(微软等浏览器使用过,但感觉还是不如firefox的firebug好用,至少在查看布局和相关的css等方面后者更好用)

5.如在ashx文件中使用到session的,则要进行特别的处理

在这里引用一篇文章:

在一般事务处理页面,可以轻松的得到 Request,Response对象,从而进行相应的操作,如下:

HttpRequest Request = context.Request;

HttpResponse Response = context.Response;

但是要得到 Session的值就没有那么简单了。比如你要在ashx得到保存在Session中的登录帐号Session["userAccount"]

如果你只是context.Session["userAccount"]的话是会报 “未将对象引用设置到对象的实例”的异常

所以,如果要想取Session中的值 ,需要如下所示

1、引入 命名空间:

using System.Web.SessionState;

2、实现IRequiresSessionState接口,具体如下

/// <summary>

/// $codebehindclassname$ 的摘要说明

/// </summary>

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

public class AddUserInfo : IHttpHandler,IRequiresSessionState //就是这样显示的实现一下,不用实现什么方法

{

public void ProcessRequest(HttpContext context)

{

      //...

       //这样你就可以如下 操作了

if(context.Session["userAccount"] != null)

      {

        string account = context.Session["userAccount"].ToString();

      }

      //...继续下面的代码

    }

  }

时间: 2024-10-03 18:04:17

jquery异步调用post的一些注意事项的相关文章

jquery ajax异步调用

写程序的第一步都要知其然,至于知其所以然就要看个人的爱好了.下面说一下web开发中经常用的ajax. 这里是用的jquery框架实现的ajax异步调用.废话少说先上代码.(asp.net开发) var x=""; var y=""; $.ajax({ type: "post", url: "../ashx/RemoveHoliday.ashx", dataType: "json", data: { parm

浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法(转载)

在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:true(默认情况),如: 复制代码 代码如下: function ManageCommentText(text) {var result = text;$.ajax({data: "get",url: "GetComments.aspx",data: "typ

jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法

jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法 在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:true(默认情况),如: function ManageCommentText(text) { var result = text; $.ajax({ data: "get", url: &qu

jQuery异步框架探究1:jQuery._Deferred方法

jQuery异步框架应用于jQuery数据缓存模块.jQuery ajax模块.jQuery事件绑定模块等多个模块,是jQuery的基础功能之一.实际上是jQuery实现的一个异步处理框架,从本质上讲与java aio没有区别,所以需要从更抽象层面的"异步处理"的视角分析解读该模块.这个部分与dom功能关系不大,是独立部分,可以看作是jQuery工具系列之一. 与异步框架相关的方法定义于jQuery类的静态方法中.只有三个方法,但是功能和应用及其强大!本篇详细讲解第一个方法jQuery

Jquery ajax调用webservice总结

jquery ajax调用webservice(C#)要注意的几个事项: 1.web.config里需要配置2个地方 <httpHandlers>      <remove verb="*" path="*.asmx"/>      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script

jquery.ajax请求aspx和ashx的异同 Jquery Ajax调用aspx页面方法

1.jquery.ajax请求aspx 请求aspx的静态方法要注意一下问题: (1)aspx的后台方法必须静态,而且添加webmethod特性 (2)在ajax方法中contentType必须是"application/json", (3)data传递的数据必须是严格的json数据,如"{'a':'aa','b':'bb'}",而且参数必须和静态方法的参数一 一对应 (4)aspx的后台方法返回的数据默认形式是"{'d':'返回的内容'}",所

Struts2之异步调用机制详解

一.学习案例:通过在getXML.jsp页面改变名称,在不刷新当前页面的情况下修改页面的数据. 二.案例分析:struts和ajax配合,主要是返回数据的定义.我们可以返回json和xml格式的数据.在此只演示xml方式. a)格式xml数据,一是拼接字符串,但是数据多的情况下,代码维护就不行了.所以在此我们借助dom4j.把下载的dom4j.jar放到lib目录下. b)创建scripts包,把jquery.js放进去. c)创建getXML.jsp页面,编写html以及jquery. d)创

jQuery异步请求(如getJSON)跨域解决方案

相信大家在使用jQuery异步请求非自己网站内相对资源(通过别人站点上的URL直接读取)使经常会遇到如下错误吧,实际上这些错误都是浏览器安全机制“搞的鬼”,才让我们开发路上遇到了拦路虎. 当你直接在浏览器中请求:“http://www.weather.com.cn/adat/sk/101110101.html”时会得到你需要的json数据. 当你通过jQuery的getJSON方法读取时你就会得到下列错误. Chrome提示错误: XMLHttpRequest cannot load http:

Jquery Ajax 调用 WebService

原文:http://www.cnblogs.com/andiki/archive/2010/05/17/1737254.html jquery ajax调用webservice(C#)要注意的几个事项: 1.web.config里需要配置2个地方 <httpHandlers>       <remove verb="*" path="*.asmx"/>       <add verb="*" path="*