1. 问题描述:自己做的两个项目,其中A作为开放平台,可以授权登陆,B作为第三方平台接入A;
在调用时报错:HttpClientErrorException: 405 Not Allowed,网上一大堆说的都是跨域问题。所以一直都往跨域的解决方向处理此错误。
2. 过程:经过一些列的神操作和调试,比如:response.setHeader("Access-Control-Allow-Origin","*"); 仍然存在上述报错。问题根本得不到解决。
由于我这里,使用postForObject方式调用,设置了允许跨域,然并卵。
HttpHeaders headers = new HttpHeaders();
headers.setAccessControlAllowOrigin("*"); // 允许跨域
headers.setContentType(MediaType.valueOf("application/json;charset=UTF-8"));
Map<String, Object> reqMap = new HashMap<>();
reqMap.put("grantType", grantType);
reqMap.put("code", code);
reqMap.put("appId", appId);
reqMap.put("appSecret", appSecret);
HttpEntity<String> request = new HttpEntity<>(JSONObject.toJSON(reqMap).toString(), headers);
JSONObject json = restTemplate.postForObject(tokenUrl, request, JSONObject.class, domain);
3. 最终: 开始怀疑路径有问题,经过对比,果然发现了猫腻。果真是路径有出入,但让人疑惑的是,路径不正确报错与跨域报错的code是一样的,开始怀疑人生~~~