繁体   English   中英

jQuery / Ajax和ASP.NET Web服务的会话状态

[英]Session state with jQuery/Ajax and ASP.NET web service

我正在尝试使用jQuery的Ajax方法使用ASP.NET Web服务。 我希望Web服务方法的返回类型为JSON格式的数据,并使用以下属性标记该方法:

[WebMethod(EnableSession = true)]
[ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]
public MyObject[] GetMyObjects(int pageIndex) {/*...*/}

我还想从该方法返回某种值,该值将指示会话是否已过期,或者在SOAP标头中输出一个参数。 我将如何使用jQuery语法做到这一点? 是否应该将MyObject[]数组包装在可序列化的ResponseType对象中,该对象包含SessionValid属性和有效负载? 还是可以在jQuery中使用SOAP标头和输出参数?

谢谢。

是否应该将MyObject []数组包装在可序列化的ResponseType对象中,该对象包含SessionValid属性和有效负载?

这就是我通常使用的方式。
实现起来不费时间,而且非常容易维护。

[Serializable]
public class MyReturn
{
  public MyObject[] MyObjectList { get; set; }
  public bool SessionExpired { get; set; }
}

然后在进行AJAX调用的地方处理它。

编辑 :我通常只使用

//...
contentType: "application/json; charset=utf-8",
dataType: "json", 
//...

在我的AJAX调用中,以确保返回的类型为JSON格式。

我对在SOAP Web服务中使用会话并不完全熟悉。 但是,我确实迷失了这篇文章该文章指出JavaScript将需要考虑cookie,因为这是维护会话的方式。

尽管SOAP可以使用不同的方法通过其标头跟踪会话,所以我不知道这是否正确。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM