Spring Redirect无法在iOS上运行(在桌面环境下运行)

时间:2018-11-22 15:12:07

标签: iphone spring spring-mvc spring-boot vue.js

我有一个简单的用例,其中客户端希望能够将用户友好的url重定向到vue-router url(具有id等)。因此,我做了以下(简化示例)。

@Controller
@RequestMapping("/users")
public class RedirectController {

    @Value("${server.baseUrl}")
    private String baseUrl;

    private final UserService userService;

    @Autowired
    public RedirectController(final UserService userService) {
        this.userService = userService;
    }

    @GetMapping()
    public String catchAll() {

        return "redirect:" + baseUrl;
    }

    @GetMapping("/{userName}")
    public String redirect(@PathVariable("userName") String userName) {

        String url = "/";

        if (userName.matches("[a-zA-Z]+(-[a-zA-Z]+)*")) {

            User user = userService.findByUserName(userName);

            if (user != null) {
                url += "#/users/" + user.getHashedId();
            }
        }
        return "redirect:" + baseUrl + url;
    }
}

因此可以在桌面浏览器上使用,但是如果我将https://www.example.com/users/some-user/放入iPhone上的Safari或Chrome浏览器中。尽管控制器正确返回了“ redirect:https://www.example.com/”,但它仍重定向到“ https://www.example.com/#/users/1623123465/”(我已经用断点等检查过)。

有什么想法吗?

谢谢

0 个答案:

没有答案