Vb.net 在Web服务中使用会话状态保留通过AJAX发送的数据,而不使用代理
我有一个web服务,我正试图使用它创建一个购物车。数据保存在显示它的网站的单独域中 我已按以下方式设置该服务:Vb.net 在Web服务中使用会话状态保留通过AJAX发送的数据,而不使用代理,vb.net,web-services,jquery,asmx,session-state,Vb.net,Web Services,Jquery,Asmx,Session State,我有一个web服务,我正试图使用它创建一个购物车。数据保存在显示它的网站的单独域中 我已按以下方式设置该服务: <System.Web.Script.Services.ScriptService()> _ <System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _ <System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.
<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class shoppingCart
Inherits System.Web.Services.WebService
<WebMethod(True)> _
Public Function addToCart(itemId, qty, singlePrice, singleWeight, isBulk, apiKey)
''' do stuff
Dim shoppingCart = Session("hgPublicCart")
if shoppingCart is nothing then
'' make shopping cart
else
'' add to shopping cart
end if
return shoppingCart
End Function
我能够成功单击“立即购买”按钮,将商品信息发送到web服务,并创建一个新的购物车,然后通过远程服务器上的数据将其返回到浏览器,并相应地更新我的页面
然而。。。然后,如果我尝试“购买”第二个项目以添加到购物车中,它作为远程服务器上的会话变量保存,我只需创建另一个新项目,我的购物车中的前一个项目就会丢失
我可以理解为什么会发生这种情况,我想,在AJAX调用中没有维护会话ID,但是我不知道如何修复它
本页:
这是Google上最有用的链接,但它没有使用AJAX post,也就是说,它不是一个到远程服务器的完全客户端post,而是在客户端服务器上创建一个会话/cookie。不管怎样,我可能不得不这样做,但如果有人能为我指明在远程服务器上使用会话状态的示例代码的方向,那就太好了
我不想使用Javascript Cookies
编辑:请注意,我知道这在
http://localhost/(lit3py55t21z5v55vlm25s55)/Application/SessionState.aspx
所以,如果您想避免cookies,就必须配置服务器(web.config-请参阅本文)并维护正确的URL。对我来说,cookies似乎更简单。ASMX是一项遗留技术,不应用于新的开发。WCF应用于web服务客户端和服务器的所有新开发。一个提示:微软已经退出了MSDN上的。感谢@JohnSaunders将所有内容移动到WDF来帮助解决这个问题的信息?我不知道。然而,它将阻止你故意使用过时的工具使事情变得更糟。
http://localhost/(lit3py55t21z5v55vlm25s55)/Application/SessionState.aspx