今天项目中碰到个加载H5页面ajax认证失败问题,查了下代码,也做了cookie同步.一开始以为是cookie的 时效性导致的。后来我加上了个隔几分钟异步登陆刷新还是认证失败,加载不出具体的数据。最后不断的跟踪代码打印查询,查看WebView API,最后分析出在设置Cookie的时候没有加“path”。
解决方案:直接在每个Cookie设置项里面增加“path=/”,问题即可解决。下面贴出相关代码
public void synCookies(final Context context, final String url) { CookieSyncManager.createInstance(context); final CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setAcceptCookie(true); cookieManager.removeSessionCookie();//移除 cookieManager.setCookie(url, LibConfig.getCookie()+";path=/;");//cookies是在HttpClient中获得的cookie cookieManager.flush(); }