我有一个spring mvc REST服务,它返回一个json响应(gson序列化)。响应包含具有特定链接的节点 例如:
{ link : "http://www.test.com"}
当我使用http访问服务时很好,但是当通过https访问服务时,结果中的链接将转换为https
{ link : "https://www.test.com"}
任何想法?
完整示例:
@RequestMapping(value = "/test",method = {RequestMethod.GET,RequestMethod.OPTIONS}, produces = "application/json;charset=UTF-8")
@ResponseBody
public String getTest(@PathVariable("id") String id, Model model, HttpServletRequest request, HttpServletResponse response) {
response.setHeader("Access-Control-Allow-Origin", "*");
String test = "{ link : \"http://www.test.com\"}";
return test;
}
答案 0 :(得分:0)
在搜索一整天之前和之后我都遇到了这个问题我找不到解决方法。所以我做的是在返回之前从json响应中的链接url中删除协议。
答案 1 :(得分:0)
(我的评论在编辑模式下太长了)。 我相信这里有一些CORS问题。据我所知(但您可能需要仔细检查谷歌):Access-Control-Allow-Origin只能用于预检请求(使用OPTIONS)。浏览器收到此消息后,它(浏览器)可以执行GET请求,您可以随心所欲地提供服务。我不确定如果你在一种方法中组合2个请求并提供回链接会发生什么。