wx.request调用 ASP.NET WebApi session丢失问题
发布于 6 年前 作者 ucheng 4706 次浏览 来自 问答

webapi的session已开启.

如题,在浏览器测试接口的时候完全没问题,当放到wx.request中请求就会丢失session.

我写了一个测试方法.

分别对应两个 Controller,一个存值,一个读取.

在浏览器中分别依次访问两个方法.在第二个方法中可以正常读取到test.

但放在wx.request中的时候,session中key为空.请问wx.request中的请求和ajax的请求是不是不相同?

3 回复

wx.request 是通过客户端接口发起的HTTPS请求,不是浏览器的ajax

所以没有session  需要开发者自己记录和标记登录状态

感谢楼上两位朋友的解答,昨天发出问题之前的解决方案就是@唐涛的这种方式,这样每次请求都需要多增加一个sessionID的参数,感觉繁琐.所以来问问是什么原因导致的,看是不是小程序的bug,看来目前的只能先用传sessionid的方式解决了…谢谢两位.

微信小程序没有保持session id的,我昨天也遇到这个问题,解决办法我感觉有两种

1、用openid,服务端改动有些大

2、小程序在第一次请求的时候,服务端返回这个函数的json把session返回,小程序端存入缓存,以后每次请求都构造http头,把session传入过去,这样服务端改动代码小,

php的是content-type’: ‘application/x-www-form-urlencoded’, ‘Cookie’: ‘PHPSESSID=’ + session_id

java服务端是content-type’: ‘application/x-www-form-urlencoded’, ‘Cookie’: ‘JSESSIONID=’ + session_id

.net很久没写了,记不住了,你可以在服务端随便找个函数把所有的http header输出查看

小程序端最好封装一个请求函数,以后所有的请求都调用这个函数即可,具体的例子可以参考百度到的

http://blog.csdn.net/mad_geek/article/details/53148267

另外就是小程序由于wx.Request是异步的,所以第一次请求的时候可以在起始页onload里面进行请求

回到顶部