标签:domain 跨域 访问 token cookie new 请求
一般跨域请求访问时遇到的问题解决
- 前几天遇到一个特别傻的问题,看到浏览器所有的访问都是通过cookie控制权限的,我尝试在公司内跨域访问一个内部接口,接口名和请求参数都可以从浏览器访问时看到,于是就把在代码中设置cookie,添加要访问网页的token/user_token 但是添加后依然返回的是token not found ,当时我明明是传了token的,但是为什么访问不了 难道是公司内的系统配置了接口调用权限?
- 带着这个问题 我去百度查了一下 在后端代码访问跨域接口需要的就是网页的token ,但是cookie的信息不只token一个 还有domain和path,所以最终的代码是这样的
- 下面展示一些
内联代码片
。
JSONObject result = new JSONObject();
CookieStore cookieStore = new BasicCookieStore();
CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultCookieStore(cookieStore)
.build();
try {
HttpPost post = new HttpPost(url);
// 添加参数
post.setEntity(new UrlEncodedFormEntity(pairList, "utf-8"));
// 设置cookies
BasicClientCookie cookie = new BasicClientCookie("token", token);
cookie.setDomain("10.20.18.100");
cookie.setPath("/");
cookieStore.addCookie(cookie);
// 通过请求对象获取响应对象
HttpResponse response = httpClient.execute(post);
// 拿到返回的对象(0--200都数正常)
result = JSON.parseObject(EntityUtils.toString(response.getEntity(), "utf-8"));
} catch (Exception e) {
e.printStackTrace();
}
return result;
-
如果不给cookie中存domain和path值,cookie会不知道去哪放token,导致识别不到。至于domain的含义,在这篇文章里写的非常全面
- cookie的domain属性.
标签:domain,跨域,访问,token,cookie,new,请求 来源: https://blog.csdn.net/zhxy007/article/details/120370233
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。