Spring Redirect не работает с iOS (отлично с Desktop) - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть простой случай использования, когда клиент хочет иметь возможность перенаправить удобные для пользователя URL-адреса на URL-адреса vue-router, которые являются менее реальными (с идентификаторами и т. Д.).Поэтому я сделал следующее (упрощенный пример).

@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/ в Safari или Chrome на моем iPhone.Он перенаправляет на «https://www.example.com/" несмотря на (и я проверял это с точками останова и т. Д.) Контроллер, правильно возвращающий» редирект: https://www.example.com/#/users/1623123465/".

Любые идеи?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...